最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python文件目錄操作常用模塊的使用詳解

 更新時(shí)間:2022年07月29日 14:16:17   作者:笨牛慢耕  
Python中用于文件目錄操作的常用模塊有os, shutil,pathlib等。os模塊提供的就是各種 Python 程序與操作系統(tǒng)進(jìn)行交互的接口。shutil模塊是對(duì)os模塊的補(bǔ)充,主要針對(duì)文件的拷貝、刪除、移動(dòng)、壓縮和解壓操作

 Python中用于文件目錄操作的常用模塊有os, shutil,pathlib等.

os就是“Operating System”的縮寫,顧名思義,os模塊提供的就是各種 Python 程序與操作系統(tǒng)進(jìn)行交互的接口。通過使用os模塊,一方面可以方便地與操作系統(tǒng)進(jìn)行交互,另一方面也可以提高代碼的可移植性,方便代碼跨操作系統(tǒng)平臺(tái)使用。如果該模塊中相關(guān)功能出錯(cuò),會(huì)拋出OSError異?;蚱渥宇惍惓?。

shutil可以簡(jiǎn)單地理解為sh + util,shell工具的意思。shutil模塊是對(duì)os模塊的補(bǔ)充,主要針對(duì)文件的拷貝、刪除、移動(dòng)、壓縮和解壓操作。

1. os模塊

Python的os模塊封裝了常見的文件和目錄操作。

通常來說,不建議用from os import *來導(dǎo)入os模塊。os模塊中有些函數(shù)與python內(nèi)置函數(shù)重名,比如說open()。這種方式導(dǎo)入時(shí),os.open就把python內(nèi)置open()覆蓋了。

如果是讀寫文件的話,建議使用內(nèi)置函數(shù)open();如果是路徑相關(guān)的操作,建議使用os的子模塊os.path;如果要逐行讀取多個(gè)文件,建議使用fileinput模塊;要?jiǎng)?chuàng)建臨時(shí)文件或路徑,建議使用tempfile模塊;要進(jìn)行更高級(jí)的文件和路徑操作則應(yīng)當(dāng)使用shutil模塊。

使用os模塊可以寫出操作系統(tǒng)無關(guān)的代碼。但是os也可以調(diào)用一些特定系統(tǒng)的擴(kuò)展功能,但要切記一點(diǎn):一旦這樣做就會(huì)極大損害代碼的可移植性。

1.1 獲取系統(tǒng)信息

判斷使用的平臺(tái):字符串指示你正在使用的平臺(tái)。比如對(duì)于Windows,它是'nt',而對(duì)于Linux/Unix用戶,它是 'posix'。有時(shí)候給出的信息不夠細(xì)。

# 獲取平臺(tái)名稱. 注意這個(gè)不是函數(shù),所以不需要帶括號(hào)()
os.name
 
# 獲取系統(tǒng)的核心數(shù)
os.cpu_count()
 
# 改變權(quán)限
os.chmod(path, mode)

1.2  工作目錄與路徑相關(guān)的操作

# 獲取路徑和文件名等
os.getcwd()            #函數(shù)得到當(dāng)前工作目錄,即當(dāng)前Python腳本工作的目錄路徑
os.path.abspath($name) #當(dāng)前目錄下文件或文件夾的絕對(duì)路徑
os.path.basename(path) #返回文件名
os.path.dirname(path)  #返回文件的上級(jí)路徑
os.path.split()        #分離文件名和上級(jí)路徑
os.path.join()         #合并文件名和指定路徑
os.path.splitext()     #分離文件名與擴(kuò)展名,返回的擴(kuò)展名包括了'.'符號(hào),默認(rèn)只返回第一個(gè)'.后綴'和前綴。
 
# 改變工作目錄到dirname
os.chdir(dirname)
 
# 該函數(shù)相當(dāng)于linux命令“l(fā)s”,列舉出指定目錄中的內(nèi)容。其返回值是一個(gè)列表。列表中的每一格元素表示一個(gè)子目錄名,或者一個(gè)文件名
os.listdir(path) 
 
# 創(chuàng)建一個(gè)目錄
os.mkdir(path)    
# 刪除一個(gè)目錄
os.rmdir(path)    
# 重命名
os.rename(src, dst) 
 
# 獲取文件大小信息
os.path.getsize(name)   #獲得文件大小,如果name是目錄返回0L

1.3 判斷是否文件或目錄以及指定文件目錄是否存在

#函數(shù)分別檢驗(yàn)給出的路徑是一個(gè)文件?
os.path.isfile()   
#函數(shù)分別檢驗(yàn)給出的路徑是一個(gè)目錄?
os.path.isdir()    
#函數(shù)用來檢驗(yàn)給出的路徑是否真地存在
os.path.exists()   

1.4 刪除一個(gè)文件或者目錄

Ref: How to delete a file or folder in Python? - Stack Overflow

# 刪除一個(gè)文件
os.remove()
# 刪除一個(gè)文件
os.unlink() 
# 刪除一個(gè)空目錄,如果不是空目錄會(huì)報(bào)錯(cuò)
os.rmdir()

BTW, 除了OS模塊外,shutil和pathlib也提供了相應(yīng)的函數(shù)。 

# 刪除目錄,包括其中的文件以及子目錄,需要小心使用
shutil.rmtree()
# removes a file or symbolic link.
pathlib.Path.unlink() 
# removes an empty directory.
pathlib.Path.rmdir() 

1.5 串連創(chuàng)建或者分離一個(gè)文件目錄路徑

#os.path.join(datadir,file)
 
#與直接字符串連接不同的是,'D:/tmp'即可,不需要'D:/tmp/'
os.path.join('D:/tmp','tmp.txt')
 
 
# 返回路徑的目錄和文件名,即將目錄和文件名分開,而不是一個(gè)整體。此處只是把前后兩部分分開而已。就是找最后一個(gè)'/'。
os.path.split(path)

1.6 執(zhí)行外部shell命令

os.system(cmd)      #執(zhí)行外部shell命令。

2. shutil模塊        

shutil可以簡(jiǎn)單地理解為sh + util,shell工具的意思。shutil模塊是對(duì)os模塊的補(bǔ)充,主要針對(duì)文件的拷貝、刪除、移動(dòng)、壓縮和解壓操作。

2.1 拷貝文件

shutil會(huì)自動(dòng)識(shí)別拷貝的到底是文件還是文件夾, 如果存在同名的文件將會(huì)自動(dòng)進(jìn)行覆蓋。

shutil.copy($file_path, $dir_path)

2.2 移動(dòng)或重命名文件

如果路徑下已有重名的文件,將報(bào)錯(cuò)!

shutil.move($file_path, $dir_path) # 移動(dòng)到另外一個(gè)文件夾中
shutil.move($file_path, $new_file_path) # 重命名為新的絕對(duì)路徑

2.3 拷貝文件夾/刪除文件夾

shutil.copytree($file_path, $dir_path) # 拷貝所有文件到新的文件夾下,保持原有的文件結(jié)構(gòu)。
shutil.rmtree($dir_path) # 刪除此路徑的文件夾

2.4 生成壓縮文件

shutil.make_archive(base_name, 'gztar', root_dir, [base_dir)

base_name : 創(chuàng)建的目標(biāo)文件名,包括路徑,減去任何特定格式的擴(kuò)展。

format : 壓縮包格式。”zip”, “tar”, “bztar”或”gztar”中的一個(gè)。

root_dir : 需要打包的文件夾路徑。打包完成時(shí)存儲(chǔ)在上一級(jí)目錄。

base_dir : 使用后會(huì)將base_dir作為路徑,解壓后有個(gè)有層級(jí)的文件夾,而僅非只有單獨(dú)的打包內(nèi)容。

2.5 解壓文件

shutil.unpack_archive(filename[, extract_dir[, format]])

filename是壓縮文檔的完整路徑

extract_dir是解壓縮路徑,默認(rèn)為當(dāng)前目錄。

format是壓縮格式。默認(rèn)使用文件后綴名代碼的壓縮格式。”zip”, “tar”, “bztar”或”gztar”中的一個(gè)。

到此這篇關(guān)于Python文件目錄操作常用模塊的使用詳解的文章就介紹到這了,更多相關(guān)Python文件目錄操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pygame游戲開發(fā)之太空射擊實(shí)戰(zhàn)子彈與碰撞處理篇

    Pygame游戲開發(fā)之太空射擊實(shí)戰(zhàn)子彈與碰撞處理篇

    相信大多數(shù)8090后都玩過太空射擊游戲,在過去游戲不多的年代太空射擊自然屬于經(jīng)典好玩的一款了,今天我們來自己動(dòng)手實(shí)現(xiàn)它,在編寫學(xué)習(xí)中回顧過往展望未來,下面開始講解子彈與碰撞處理,在本課中,我們將添加玩家與敵人之間的碰撞,以及添加供玩家射擊的子彈
    2022-08-08
  • python實(shí)現(xiàn)批量圖片格式轉(zhuǎn)換

    python實(shí)現(xiàn)批量圖片格式轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)批量圖片格式轉(zhuǎn)換的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 使用anaconda的pip安裝第三方python包的操作步驟

    使用anaconda的pip安裝第三方python包的操作步驟

    今天小編就為大家分享一篇使用anaconda的pip安裝第三方python包的操作步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 用python基于appium模塊開發(fā)一個(gè)自動(dòng)收取能量的小助手

    用python基于appium模塊開發(fā)一個(gè)自動(dòng)收取能量的小助手

    大家都有了解過螞蟻森林吧,本篇文章帶給你自動(dòng)收取螞蟻森林能量的思路與方法,基于appium模塊開發(fā)一個(gè)自動(dòng)收取能量的小助手,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值
    2021-09-09
  • PyQt編程之如何在屏幕中央顯示窗體的實(shí)例

    PyQt編程之如何在屏幕中央顯示窗體的實(shí)例

    今天小編就為大家分享一篇PyQt編程之如何在屏幕中央顯示窗體的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python桌面文件清理腳本分享

    Python桌面文件清理腳本分享

    這篇文章主要介紹了Python桌面文件清理腳本,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python搭建虛擬環(huán)境的步驟詳解

    python搭建虛擬環(huán)境的步驟詳解

    相信每位python都知道,進(jìn)行不同的python項(xiàng)目開發(fā),有的時(shí)候會(huì)遇到這樣的情況:python 版本不一樣,使用的軟件包版本不一樣。這種問題最佳的解決辦法是為不同的項(xiàng)目搭建獨(dú)立的 python 環(huán)境。下面來一起看看吧。
    2016-09-09
  • 詳解python模塊pychartdir安裝及導(dǎo)入問題

    詳解python模塊pychartdir安裝及導(dǎo)入問題

    這篇文章主要介紹了python模塊pychartdir導(dǎo)入問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 講解Python中的遞歸函數(shù)

    講解Python中的遞歸函數(shù)

    這篇文章主要介紹了講解Python中的遞歸函數(shù),遞歸是學(xué)一門編程語言必須掌握的重要特性,需要的朋友可以參考下
    2015-04-04
  • Python批處理更改文件名os.rename的方法

    Python批處理更改文件名os.rename的方法

    今天小編就為大家分享一篇Python批處理更改文件名os.rename的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評(píng)論

云梦县| 万州区| 广丰县| 兖州市| 福州市| 廊坊市| 白河县| 黎平县| 介休市| 那曲县| 临泉县| 商都县| 沈丘县| 桐乡市| 福泉市| 小金县| 色达县| 固原市| 米易县| 黄大仙区| 临安市| 石狮市| 兴宁市| 出国| 密山市| 白水县| 南汇区| 苍溪县| 镇原县| 华容县| 雷波县| 乐至县| 绍兴县| 丰城市| 伽师县| 策勒县| 佛教| 阳朔县| 满城县| 白水县| 明水县|