您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Python如何實現(xiàn)文件夾操作”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“Python如何實現(xiàn)文件夾操作”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
操作 | 代碼 | 說明/示例 |
---|---|---|
新建文件 | os.mknod(dir_str) | 傳入需創(chuàng)建文件的路徑,但是需要修改權(quán)限才行 |
os.system(' touch test.txt') | 使用命令行創(chuàng)建,簡單方便 | |
移動文件 | shutil.move(src_str,dst_str) | 傳入源路徑和目標路徑,可移動文件及文件夾,移動文件夾時是遞歸移動,返回相較于工作目錄的相對最終路徑 |
復(fù)制文件 | shutil.copyfile(src_str,dst_str) | 傳入源文件和需復(fù)制到路徑,均需是文件,返回相較于工作目錄的相對最終路徑 |
shutil.copy(src_str,dst_str) | 傳入源文件和需復(fù)制到路徑,dst如果是文件則復(fù)制+重命名,如果是目錄,則直接復(fù)制,但均不復(fù)制文件元信息 | |
shutil.copy2(src_str,dst_str) | 相較于copy,會將文件元信息也復(fù)制,包括創(chuàng)建、修改時間等 | |
重命名 | os.rename(old_str,new_str) | 對文件或文件夾重命名 |
刪除文件 | os.remove(file_str) | 刪除指定文件,可以傳入相較于工作目錄的相對路徑 |
文件讀寫建議使用Python的標準file操作,具體本文不作展開
with open(filename_str,mode_str) as f: f.readline() f.write(content)
操作 | 代碼 | 說明/示例 |
---|---|---|
獲取文件或文件夾屬性 | os.stat(dir_str) | 獲取文件或文件夾相關(guān)屬性 可返回文件的模式、所屬用戶ID、大小、上次訪問時間、最后修改時間、創(chuàng)建時間等信息 具體見: Python os.stat() 方法 | 菜鳥教程 |
操作 | 代碼 | 說明/示例 |
---|---|---|
新建文件夾 | os.mkdir(dir_str) | 創(chuàng)建單個文件夾,如果文件夾已存在會報錯 |
os.mkdirs(dir_str) | 遞歸創(chuàng)建文件夾,即可一次性創(chuàng)建多層文件夾 | |
from pathlib import Path p=Path(dir_str) p.mkdir(exist_ok=True) | 使用pathlib,可以創(chuàng)建單個或遞歸創(chuàng)建文件夾,且如果存在也可忽略報錯 | |
移動文件夾 | shutil.move(src_str,dst_str) | 可移動文件或文件夾 |
復(fù)制文件夾 | shutil.copytree(src_str,dst_str) | 遞歸的將指定文件夾復(fù)制到目標文件夾內(nèi),一般用作備份文件夾 |
刪除文件夾 | os.rmdir(dir_str) | 刪除指定文件夾,只能刪除單層文件夾,且不為空 |
os.removedirs(dir_str) | 遞歸刪除指定文件夾,但只會刪除非空文件夾 | |
from pathlib import Path p=Path(dir_str) p.rmdir() | 與os.rmdir作用相同 | |
shutil.rmtree(dir_str) | 遞歸刪除指定文件夾及子文件夾,不為空也行,相對比較危險 |
操作 | 代碼 | 說明/示例 |
---|---|---|
單層遍歷 | os.listdir(dir_str) | 返回列表,列表內(nèi)為該文件夾內(nèi)的所有文件及文件夾名稱 |
os.scandir(dir_str) | 返回對指定文件單層遍歷的迭代器,可遍歷該迭代器,可獲取文件或文件夾名稱、屬性信息 | |
遞歸遍歷 | os.walk(dir_str) | 遞歸遍歷指定文件夾,包括子文件夾 |
import os dir_str='~/downloads/' #使用listdir dir_list=listdir(dir_str) for file in dir_list: if os.path.isfile(os.path.join(os.getcwd(),file): print('是一個文件') #使用scandir for file in os.scandir(dir_str): print(file.name) #打印文件名稱 print(file.stat) #打印文件屬性
#使用os.walk()遞歸遍歷 #walk函數(shù)會返回當前遍歷文件夾根目錄,該目錄下所有文件夾組成的列表以及該目錄下所有文件組成的列表 dir_str='~/downloads/' dir_iter=os.walk(dir_str) for root_dir,dirs,files in dir_iter: for file in files: print(file)
操作 | 代碼 | 說明/示例 |
---|---|---|
查詢當前工作目錄 | os.getcwd() | 返回當前的工作目錄,即當前執(zhí)行命令時所在工作目錄 |
修改當前工作目錄 | os.chdir(dir_str) | 修改當前工作目錄,只是臨時修改 |
操作 | 代碼 | 說明/示例 |
---|---|---|
壓縮文件/文件夾 | shutil.make_archive(file_str,format,src_dir) | 將src_dir按照format指定的格式壓縮為file_str文件 |
解壓壓縮文件 | shutil.unpack_archive(filename, extract_dir=None, format=None) | 將filename解壓到extract_dir |
變更權(quán)限 | os.chmod(dir_str,mode_int) os.chmod('aa.txt',777) | 將dir_str的權(quán)限模式修改為mode_int |
import shutil shutil.make_archive('aaa','zip','/users/aaa/downloads/常用腳本') #以上會將常用腳本文件夾內(nèi)所有內(nèi)容壓縮為aaa.zip,并存到當前工作目錄下 #如果同時希望指定壓縮文件的存儲位置,則 shutil.make_archive('/users/aaa/test/aaa.zip','zip','/users/aaa/downloads/常用腳本')
import shutil shutil.unpack_archive('aaa.zip','/users/yanweichao/downloads/bbb') #或想當前文件內(nèi)的aaa.zip文件解壓到bbb文件夾內(nèi),如果bbb文件夾不存在,會自動創(chuàng)建
讀到這里,這篇“Python如何實現(xiàn)文件夾操作”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。