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()可以刪除

浙公網安備 33010602011771號