<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Python中用於檔案目錄操作的常用模組有os, shutil,pathlib等.
os就是“Operating System”的縮寫,顧名思義,os模組提供的就是各種 Python 程式與作業系統進行互動的介面。通過使用os模組,一方面可以方便地與作業系統進行互動,另一方面也可以提高程式碼的可移植性,方便程式碼跨作業系統平臺使用。如果該模組中相關功能出錯,會丟擲OSError異常或其子類異常。
shutil可以簡單地理解為sh + util,shell工具的意思。shutil模組是對os模組的補充,主要針對檔案的拷貝、刪除、移動、壓縮和解壓操作。
Python的os模組封裝了常見的檔案和目錄操作。
通常來說,不建議用from os import *來匯入os模組。os模組中有些函數與python內建函數重名,比如說open()。這種方式匯入時,os.open就把python內建open()覆蓋了。
如果是讀寫檔案的話,建議使用內建函數open();如果是路徑相關的操作,建議使用os的子模組os.path;如果要逐行讀取多個檔案,建議使用fileinput模組;要建立臨時檔案或路徑,建議使用tempfile模組;要進行更高階的檔案和路徑操作則應當使用shutil模組。
使用os模組可以寫出作業系統無關的程式碼。但是os也可以呼叫一些特定系統的擴充套件功能,但要切記一點:一旦這樣做就會極大損害程式碼的可移植性。
判斷使用的平臺:字串指示你正在使用的平臺。比如對於Windows,它是'nt',而對於Linux/Unix使用者,它是 'posix'。有時候給出的資訊不夠細。
# 獲取平臺名稱. 注意這個不是函數,所以不需要帶括號() os.name # 獲取系統的核心數 os.cpu_count() # 改變許可權 os.chmod(path, mode)
# 獲取路徑和檔名等 os.getcwd() #函數得到當前工作目錄,即當前Python指令碼工作的目錄路徑 os.path.abspath($name) #當前目錄下檔案或資料夾的絕對路徑 os.path.basename(path) #返回檔名 os.path.dirname(path) #返回檔案的上級路徑 os.path.split() #分離檔名和上級路徑 os.path.join() #合併檔名和指定路徑 os.path.splitext() #分離檔名與擴充套件名,返回的擴充套件名包括了'.'符號,預設只返回第一個'.字尾'和字首。 # 改變工作目錄到dirname os.chdir(dirname) # 該函數相當於linux命令「ls」,列舉出指定目錄中的內容。其返回值是一個列表。列表中的每一格元素表示一個子目錄名,或者一個檔名 os.listdir(path) # 建立一個目錄 os.mkdir(path) # 刪除一個目錄 os.rmdir(path) # 重新命名 os.rename(src, dst) # 獲取檔案大小資訊 os.path.getsize(name) #獲得檔案大小,如果name是目錄返回0L
#函數分別檢驗給出的路徑是一個檔案? os.path.isfile() #函數分別檢驗給出的路徑是一個目錄? os.path.isdir() #函數用來檢驗給出的路徑是否真地存在 os.path.exists()
1.4 刪除一個檔案或者目錄
Ref: How to delete a file or folder in Python? - Stack Overflow
# 刪除一個檔案 os.remove() # 刪除一個檔案 os.unlink() # 刪除一個空目錄,如果不是空目錄會報錯 os.rmdir()
BTW, 除了OS模組外,shutil和pathlib也提供了相應的函數。
# 刪除目錄,包括其中的檔案以及子目錄,需要小心使用 shutil.rmtree() # removes a file or symbolic link. pathlib.Path.unlink() # removes an empty directory. pathlib.Path.rmdir()
#os.path.join(datadir,file) #與直接字串連線不同的是,'D:/tmp'即可,不需要'D:/tmp/' os.path.join('D:/tmp','tmp.txt') # 返回路徑的目錄和檔名,即將目錄和檔名分開,而不是一個整體。此處只是把前後兩部分分開而已。就是找最後一個'/'。 os.path.split(path)
os.system(cmd) #執行外部shell命令。
shutil可以簡單地理解為sh + util,shell工具的意思。shutil模組是對os模組的補充,主要針對檔案的拷貝、刪除、移動、壓縮和解壓操作。
shutil會自動識別拷貝的到底是檔案還是資料夾, 如果存在同名的檔案將會自動進行覆蓋。
shutil.copy($file_path, $dir_path)
如果路徑下已有重名的檔案,將報錯!
shutil.move($file_path, $dir_path) # 移動到另外一個資料夾中 shutil.move($file_path, $new_file_path) # 重新命名為新的絕對路徑
shutil.copytree($file_path, $dir_path) # 拷貝所有檔案到新的資料夾下,保持原有的檔案結構。 shutil.rmtree($dir_path) # 刪除此路徑的資料夾
shutil.make_archive(base_name, 'gztar', root_dir, [base_dir)
base_name : 建立的目標檔名,包括路徑,減去任何特定格式的擴充套件。
format : 壓縮包格式。”zip”, “tar”, “bztar”或”gztar”中的一個。
root_dir : 需要打包的資料夾路徑。打包完成時儲存在上一級目錄。
base_dir : 使用後會將base_dir作為路徑,解壓後有個有層級的資料夾,而僅非只有單獨的打包內容。
shutil.unpack_archive(filename[, extract_dir[, format]])
filename是壓縮檔案的完整路徑
extract_dir是解壓縮路徑,預設為當前目錄。
format是壓縮格式。預設使用檔案字尾名程式碼的壓縮格式。”zip”, “tar”, “bztar”或”gztar”中的一個。
到此這篇關於Python檔案目錄操作常用模組的使用詳解的文章就介紹到這了,更多相關Python檔案目錄操作內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45