Python-组织文件
1.复制文件和文件夹
shutil.copy(source,destination) 复制文件,返回一个字符串,表示被复制文件的路径
ret = shutil.copy('name.txt','../2019-07-09/') # 复制到指定文件夹下
ret = shutil.copy('testcase.xlsx','testcase1.xlsx') #复制并指定文件名称
print(ret)
shutil.copytree()将复制整个文件夹,以及它包含的文件夹和文件
ret1 = shutil.copytree(r'E:\jiashumeng\exercise\2019-07-09',r'E:\jiashumeng\exercise\2019-07-10copy')
# 不能复制到目录存在的文件 地址的复制最后包名为新包名2019-07-10copy
。 print(ret1)
2.文件和文件夹的移动与改名
shutil.move(source, destination),将路径 source 处的文件夹移动到路径
destination,并返回新位置的绝对路径的字符串。
shutil.move('name2.txt',r'E:\jiashumeng\exercise\2019-07-09') #移动到指定目录
shutil.move('name.txt','name2.txt') #移动并修改名称
-shutil.move('name.txt','../2010-07-09/') 如果没有2010-07-09文件夹,则会创建2010-07-09文件 一般不用
如果在 C:\eggs 中原来已经存在一个文件 bacon.txt,它就会被覆写。因为用这
种方式很容易不小心覆写文件,所以在使用 move()时应该注意。
3.永久删除文件和文件夹
os.unlink(path) 将删除path处文件,同os.remove(path)
os.rmdir(path) 将删除path处的文件夹。该文件夹必须为空,其实没有任何文件和文件夹
shutil.rmtree(path) 将删除path处的文件夹,它包含的所有文件和文件夹都会被删除(不能删除指定文件)
永久删除文件和文件夹(包括文件夹) shutil.rmtree("E:\\jiashumeng\\exercise\\2019-07-10copy\\") for i in os.listdir(r'E:\jiashumeng\exercise\2019-07-10'): if i.endswith('.xlsx'): os.unlink(i) # 删除文件 os.unlink(path) os.remove(path)
4.安全删除文件和文件夹
利用 send2trash,比 Python 常规的删除函数要安全得多,因为它会将文件夹和文件发送到计算机的垃圾箱或回收站,而不是永久删除它们。
baconFile = open('name.txt', 'a') baconFile.write('Bacon is not a vegetable') baconFile.close() send2trash.send2trash('name.txt')
5.遍历目录树
for folderName, subfolders, filenames in os.walk('E:\exercise'): print('folderName:',folderName) for subfolder in subfolders: print('subfolder:',subfolder) for filename in filenames: print('filename:',filename)
1.当前文件夹名称的字符串。
2.当前文件夹中子文件夹的字符串的列表。
3.当前文件夹中文件的字符串的列表。
5.压缩与解压文件
1.读取ZIP文件
if zipfile.is_zipfile('log(1).zip'): name = zipfile.ZipFile('log(1).zip') print(name.namelist()) # 包含所有文件和文件夹的字符串的列表
2.从ZIP文件中解压缩
ZipFile 对象的 extractall()方法从 ZIP 文件中解压缩所有文件和文件夹,放到当
前工作目录中
name = zipfile.ZipFile('log(1).zip')
name.extractall('../2019-07-10/log')
ZipFile 对象的 extract()方法从 ZIP 文件中解压缩单个文件。
name = zipfile.ZipFile('log(1).zip')
name.extract('20190627/20190627_11.txt',r'E:\jiashumeng\exercise\2019-07-10')
name.close()
传递给 extract()的字符串,必须匹配 namelist()返回的字符串列表中的一个。或
者,你可以向 extract()传递第二个参数,将文件解压缩到指定的文件夹,而不是当
前工作目录。如果第二个参数指定的文件夹不存在,Python 就会创建它。extract()
的返回值是被压缩后文件的绝对路径。
3.创建和添加到 ZIP 文件
要创建你自己的压缩 ZIP 文件,必须以“写模式”打开 ZipFile 对象,即传入'w'
作为第二个参数(这类似于向 open()函数传入'w',以写模式打开一个文本文件)。
如果向 ZipFile 对象的 write()方法传入一个路径,Python 就会压缩该路径所指
的文件,将它加到 ZIP 文件中。write()方法的第一个参数是一个字符串,代表要添
加的文件名。第二个参数是“压缩类型”参数,它告诉计算机使用怎样的算法来压
缩文件。可以总是将这个值设置为 zipfile.ZIP_DEFLATED(这指定了 deflate 压缩
算法,它对各种类型的数据都很有效)
newZip = zipfile.ZipFile('../2019-07-09/new.zip','w') newZip.write('20190627', compress_type=zipfile.ZIP_DEFLATED) newZip.close()
注意事项:
1.通过shutil.copy() 复制的文件,os.remove(file) 无法删除,但是send2trash()可以删除