日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python實現文件及文件夾操作大全_python

作者:一秋閑談 ? 更新時間: 2022-07-25 編程語言

在日常工作或生活中,總避免不了需要操作文件或文件夾,比如希望找出電腦中所有臨時文件并清除,或者找到指定文件夾內所有圖片文件并進行重新命名等等,如果能通過Python腳本的方式解決,會大大提升相關操作效率,本文即總結使用Python進行常見操作相關知識點,方便用到的人隨時查閱,不用再每次使用都要花費時間檢索或查閱文檔。本文主要使用os、shutil、pathlib三個包。

一、文件操作

1.1 文件常規操作

操作 代碼 說明/示例
新建文件 os.mknod(dir_str) 傳入需創建文件的路徑,但是需要修改權限才行
os.system(' touch test.txt') 使用命令行創建,簡單方便
移動文件 shutil.move(src_str,dst_str) 傳入源路徑和目標路徑,可移動文件及文件夾,移動文件夾時是遞歸移動,返回相較于工作目錄的相對最終路徑
復制文件 shutil.copyfile(src_str,dst_str) 傳入源文件和需復制到路徑,均需是文件,返回相較于工作目錄的相對最終路徑
shutil.copy(src_str,dst_str) 傳入源文件和需復制到路徑,dst如果是文件則復制+重命名,如果是目錄,則直接復制,但均不復制文件元信息
shutil.copy2(src_str,dst_str) 相較于copy,會將文件元信息也復制,包括創建、修改時間等
重命名 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 文件相關屬性訪問

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

獲取文件或文件夾相關屬性

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

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

二、文件夾操作

2.1 文件夾常規操作

操作 代碼 說明/示例
新建文件夾 os.mkdir(dir_str) 創建單個文件夾,如果文件夾已存在會報錯
os.mkdirs(dir_str) 遞歸創建文件夾,即可一次性創建多層文件夾

from pathlib import Path

p=Path(dir_str)

p.mkdir(exist_ok=True)

使用pathlib,可以創建單個或遞歸創建文件夾,且如果存在也可忽略報錯
移動文件夾 shutil.move(src_str,dst_str) 可移動文件或文件夾
復制文件夾 shutil.copytree(src_str,dst_str) 遞歸的將指定文件夾復制到目標文件夾內,一般用作備份文件夾
刪除文件夾 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) 返回列表,列表內為該文件夾內的所有文件及文件夾名稱
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函數會返回當前遍歷文件夾根目錄,該目錄下所有文件夾組成的列表以及該目錄下所有文件組成的列表
dir_str='~/downloads/'
dir_iter=os.walk(dir_str)
 
for root_dir,dirs,files in dir_iter:
    for file in files:
        print(file)

2.3 文件夾相關屬性訪問

見1.3

三、其他相關操作

3.1 工作目錄操作

操作 代碼 說明/示例
查詢當前工作目錄 os.getcwd() 返回當前的工作目錄,即當前執行命令時所在工作目錄
修改當前工作目錄 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
變更權限

os.chmod(dir_str,mode_int)

os.chmod('aa.txt',777)

將dir_str的權限模式修改為mode_int
import shutil
shutil.make_archive('aaa','zip','/users/aaa/downloads/常用腳本')
#以上會將常用腳本文件夾內所有內容壓縮為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')
#或想當前文件內的aaa.zip文件解壓到bbb文件夾內,如果bbb文件夾不存在,會自動創建

原文鏈接:https://blog.csdn.net/yifengchaoran/article/details/123591190

欄目分類
最近更新