zoukankan      html  css  js  c++  java
  • python批量修改文件名

       最近工作需要给大量文件改名。恰巧,本人又在自学python,所以就想用python写个程序来自动修改相应的文件名。下面就通过代码来介绍一下我的做法吧。

      先说一下,我的工作要求是,在所有的数据文件前加上数据所在文件夹的名字,改完名字后把所有的文件汇总到一个新的文件夹。我要处理的文件有的存放在次最后层目录、有的存放在最后一层目录(无论存放在哪里,最后加上的名字都是次次后层文件夹的名字)。所以,我要先判断我取到的文件名是否是文件夹。如果是文件夹的话,就调用一个处理文件夹的函数;若果是目标文件的话,就调用处理文件的函数。

      具体代码如下:

    #说明:本人运行此程序的环境:win10+python2.7+sublime text2
    # encoding=utf-8
    
    import os
    import os.path
    import shutil
    
    #定义一个处理文件的函数
    def myrename(path,newpath,filename,filelist):  #filename是要处理的文件名,filelist是要加上的文件夹的名字
    	#判断path是否存在
    	if os.path.exists(path):
    			newfilename = filelist + filename
    			oldd = path
    			newd = os.path.join(newpath,newfilename)
    			os.rename(oldd,newd)   #如果你不想改变文件的所在位置,那么把上一句的newd改为os.path.join(path,newfilename)即可
    	else:
    		print "path error!"
    
    #定义一个处理文件夹的函数
    def yrename(path,newpath,filelist):
    	#判断path是否存在
    	if os.path.exists(path):
    		filenames = os.listdir(path)  #获取该文件夹下的文件名
    		for filename in filenames: #循环内容和处理文件的函数原理一样
    			newfilename = filelist + filename
    			oldd = os.path.join(path,filename)
    			newd = os.path.join(newpath,newfilename)
    			os.rename(oldd,newd)
    		print "done!"
    	else:
    		print "path error!"
    
    
    path =  '你要处理的文件的路径'  #格式为'D:\...\...'
    path = unicode(path, "utf-8")  #如果你的路径含有中文,则需要加上这一句!
    newpath =  '你处理完的文件要汇总到的文件夹路径' #格式和path的一样
    newpath = unicode(newpath, "utf-8")  #如果路径含有中文,也要加这一句
    
    filelists = os.listdir(path)
    for filelist in filelists:
    	#print filelist(此句为我自己查看结果所用,可以不要)
    	path1 = os.path.join(path,filelist)
    	filelists1 = os.listdir(path1) 
    	for filelist1 in filelists1:
    		path2 = os.path.join(path1,filelist1)
    		if os.path.isdir(path2):  #!!os.isdir()的参数一定要是路径,我之前一直用文件名,然后总是得不到正确的逻辑!!所以才有上一句的join
    			yrename(path2,newpath,filelist)  #调用处理文件夹的函数
    		else:
    			myrename(path2,newpath,filelist1,filelist)#调用处理文件名的函数
    
    print "over" #处理完后,打印over
      第一次发帖,欢迎指正!



    【原创声明】转载请标明出处:https://www.cnblogs.com/surecheun/
  • 相关阅读:
    获取全部校园新闻
    爬取校园新闻首页的新闻的详情,使用正则表达式,函数抽离
    网络爬虫基础练习
    编写可维护的JavaScript
    markDown使用
    好文推荐系列---------JS模板引擎
    backbone框架思路
    如何获取URL中的参数
    如何使用NodeJs来监听文件变化
    sass基本用法(转载)
  • 原文地址:https://www.cnblogs.com/surecheun/p/9648985.html
Copyright © 2011-2022 走看看