一、说明
python中主要通过os模块和shutil模块两个模块对文件进行相关操作,移动、复制、删除、重命名。比较大的文件通过命令操作可以节省时间,提高效率。
二、实例对文件夹中文件的拷贝
from multiprocessing import Pool,Manager import os #完成拷贝文件 def copyFile(filename,oldname,newname,que): "拷贝文件函数" # 三部操作 读取内容,写入内容 关闭 que.put(filename) br = open(oldname+'/'+filename,'rb') bw = open(newname+'/'+filename,'wb') content = br.read() bw.write(content) #关闭源文件和目标文件 br.close() bw.close() def fun(): #1、提示输入要拷贝的文件名字 oldname = input("请输入你要拷贝的文件夹名字或者路径:") #2.创建文件夹,存放拷贝内容 newname = oldname + '拷贝内容' os.mkdir(newname) #3.获取oldname中的目录和文件名字 filenames = os.listdir(oldname) print(filenames) # #4.过滤文件 # filename = solute(filenames) #利用多进程的方式拷贝数据 po = Pool(5) #进程数量 que = Manager().Queue() for fileName in filenames: po.apply_async(copyFile,args=(fileName,oldname,newname,que)) con = 0 allcon = len(filenames) while True:#用主进程来显示拷贝进度 dd = que.get() con +=1 print('拷贝进度:%.2f%%'%((con/allcon)*100),end='') if con==allcon: print("恭喜你拷贝完成") break if __name__=='__main__': fun()
三、文件、文件夹的移动、复制、删除、重命名函数
-
导入shutil模块和os模块
import shutil,os
-
复制单个文件
shutil.copy("C:\\a\\1.txt","C:\\b")
-
复制并重命名新文件
shutil.copy("C:\\a\\2.txt","C:\\b\\121.txt")
-
复制整个目录(备份) shutil.copytree("C:\a","C:\b\new_a")
-
删除文件
os.unlink("C:\\b\\1.txt") os.unlink("C:\\b\\121.txt")
-
删除空文件夹
try: os.rmdir("C:\\b\\new_a") except Exception as ex: print("错误信息:"+str(ex))#提示:错误信息,目录不是空的
-
删除文件夹及内容
shutil.rmtree("C:\\b\\new_a")
-
移动文件
shutil.move("C:\\a\\1.txt","C:\\b")
-
移动文件夹
shutil.move("C:\\a\\c","C:\\b")
-
重命名文件
shutil.move("C:\\a\\2.txt","C:\\a\\new2.txt")
-
重命名文件夹
shutil.move("C:\\a\\d","C:\\a\\new_d")