溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python如何實現(xiàn)文件夾操作

發(fā)布時間:2022-05-27 11:39:50 來源:億速云 閱讀:218 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細介紹“Python如何實現(xiàn)文件夾操作”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“Python如何實現(xiàn)文件夾操作”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

一、文件操作

1.1 文件常規(guī)操作

操作代碼說明/示例
新建文件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)刪除指定文件,可以傳入相較于工作目錄的相對路徑

1.2 文件讀寫

文件讀寫建議使用Python的標準file操作,具體本文不作展開

with open(filename_str,mode_str) as f:
    f.readline()
    f.write(content)

1.3 文件相關(guān)屬性訪問

操作代碼說明/示例
獲取文件或文件夾屬性os.stat(dir_str)

獲取文件或文件夾相關(guān)屬性

可返回文件的模式、所屬用戶ID、大小、上次訪問時間、最后修改時間、創(chuàng)建時間等信息

具體見: Python os.stat() 方法 | 菜鳥教程

二、文件夾操作

2.1 文件夾常規(guī)操作

操作代碼說明/示例
新建文件夾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)遞歸刪除指定文件夾及子文件夾,不為空也行,相對比較危險

2.2 遍歷文件夾

操作代碼說明/示例
單層遍歷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)

三、其他相關(guān)操作

3.1 工作目錄操作

操作代碼說明/示例
查詢當前工作目錄os.getcwd()返回當前的工作目錄,即當前執(zhí)行命令時所在工作目錄
修改當前工作目錄os.chdir(dir_str)修改當前工作目錄,只是臨時修改

3.2 文件&文件夾其他操作

操作代碼說明/示例
壓縮文件/文件夾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è)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(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)容。

AI