日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

9个必知的Python操作文件/文件夹方法

發(fā)布時(shí)間:2024/9/15 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 9个必知的Python操作文件/文件夹方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

近幾年隨著Python的熱度不斷上漲,人們漸漸使用這門(mén)編程語(yǔ)言來(lái)進(jìn)行一些自動(dòng)化操作,以節(jié)省重復(fù)勞動(dòng)帶來(lái)的效率低下,那么必定會(huì)涉及到對(duì)文件系統(tǒng)的操作,包括文件的增、刪、改、查等等,今天小編就來(lái)介紹一下如何用Python來(lái)實(shí)現(xiàn)這些功能

輸出當(dāng)前的路徑

我們可以通過(guò)Python當(dāng)中的OS庫(kù)來(lái)獲取當(dāng)前文件所在的位置

import?os os.getcwd()

路徑的拼接

我們通過(guò)os.path.join()方法來(lái)實(shí)現(xiàn)

os.path.join('output',?'Book1.xlsx')

output

output\Book1.xlsx

確認(rèn)某文件夾或者是文件是否存在

我們先來(lái)看如何來(lái)確認(rèn)文件夾是否存在,同樣也是通過(guò)OS模塊

os.path.exists('directory_name')

同樣的道理,要是我們查看一下某個(gè)文件是否存在的時(shí)候,可以這么做

os.path.exists('path/file_name')

建立文件夾目錄

然后我們來(lái)看一下如何新建一個(gè)文件夾

os.mkdir("文件夾名稱(chēng)")

當(dāng)然要是文件夾目錄已經(jīng)提前存在的情況下,上述的代碼自然會(huì)報(bào)錯(cuò),所以我們通常會(huì)先檢查一下是否已經(jīng)存在

if?not?os.path.exists('文件夾名稱(chēng)'):os.mkdir('文件夾名稱(chēng)')

當(dāng)然我們有時(shí)候需要在已建的文件夾下創(chuàng)建子文件夾,例如下圖

這個(gè)時(shí)候要是引用os.mkdir()方法或許會(huì)稍顯繁瑣,這時(shí)我們可以通過(guò)os.mkdirs()方法來(lái)實(shí)現(xiàn)

os.makedirs(os.path.join('test_dir',?'level_1',?'level_2',?'level_3'))

羅列出當(dāng)前目錄下所包含的所有文件

代碼如下

os.listdir('文件夾名稱(chēng)')

但是有時(shí)候我們可能想例如搜尋一下當(dāng)前目錄下的所有文件中以“py”結(jié)尾的文件,我們可以通過(guò)通配符來(lái)實(shí)現(xiàn),代碼如下

list(glob(os.path.join('.',?'*.py')))

上面提到的glob模塊能夠快速查找我們想要的目錄和文件,它支持*、**、?、[]這四個(gè)通配符

移動(dòng)文件

要是我們想在不同的目錄文件夾之下移動(dòng)文件,該怎么操作呢?這里我們介紹Python當(dāng)中的shutil模塊,假設(shè)我們想要將當(dāng)前目錄下的幾個(gè)csv文件移動(dòng)到“test_dir”目錄文件夾之下,代碼如下

import?shutilfor?file?in?list(glob(os.path.join('.',?'*.csv'))):shutil.move(file,?'test_dir')

復(fù)制文件

當(dāng)我們想要復(fù)制文件的時(shí)候,也可以使用shutil模塊,例如我們想要將幾個(gè)“test_dir”目錄文件夾下的csv文件復(fù)制到“output”目錄文件夾之下,代碼如下

shutil.copy(os.path.join('test_dir',?'data.csv'),?'output')

除此之外,我們還能夠?qū)φ迟N過(guò)去的文件重命名,代碼如下

shutil.copy(os.path.join('test_dir',?'data.csv'),os.path.join('output',?'data_2.csv'))

刪除文件

我們來(lái)看一下刪除文件該如何實(shí)現(xiàn)?os.remove()方法可以完成刪除文件的功能,

os.remove(os.path.join('output',?'data_2.csv'))

當(dāng)我們想要?jiǎng)h除一整個(gè)目錄文件夾的時(shí)候,可以使用os.rmdir()方法,當(dāng)然只僅限于是空的目錄文件夾

os.rmdir(os.path.join('test_dir',?'level_1',?'level_2',?'level_3'))

而對(duì)于目錄文件夾下存在文件的,并不是空的目錄文件夾,我們還是需要用到shutil模塊,代碼如下

shutil.rmtree("test_delete")

或者是

shutil.rmtree(os.path.join("test_delete",?"test_1_delete"))

創(chuàng)建和解壓 壓縮包

談及到操作壓縮包相關(guān)的內(nèi)容,就不得不說(shuō)zipobj這個(gè)模塊了

  • 創(chuàng)建一個(gè)壓縮包

這里我們要用到的是zipfile模塊當(dāng)中的write()方法

file_lists?=?list(glob(os.path.join('.',?'*.xlsx')))with?zipfile.ZipFile(r"我創(chuàng)建的壓縮包.zip",?"w")?as?zipobj:for?file?in?file_lists:zipobj.write(file)
  • 讀取壓縮包當(dāng)中的文件信息

通過(guò)zipfile模塊當(dāng)中的namelist()方法來(lái)實(shí)現(xiàn)

with?zipfile.ZipFile("我創(chuàng)建的壓縮包.zip",?"r")?as?zipobj:print(zipobj.namelist())

output

['Book1.xlsx',?'supermarkt_sales.xlsx']

可以看到輸出的就是上次我們打包的幾個(gè)excel文件

  • 將壓縮包當(dāng)中的單個(gè)文件,解壓出來(lái)

通過(guò)zipfile模塊當(dāng)中的extract()方法來(lái)實(shí)現(xiàn)

dst?=?"output"with?zipfile.ZipFile("我創(chuàng)建的壓縮包.zip",?"r")?as?zipobj:zipobj.extract("Book1.xlsx",dst)

上述代碼的用意就是將壓縮包當(dāng)中的“Book1.xlsx”文件解壓至“output”目錄文件夾下

  • 將壓縮包中的所有文件,都解壓出來(lái)

通過(guò)zipfile模塊當(dāng)中的extractall()方法來(lái)實(shí)現(xiàn),代碼如下

dst?=?"output"with?zipfile.ZipFile("我創(chuàng)建的壓縮包.zip",?"r")?as?zipobj:zipobj.extractall(dst)

各位伙伴們好,詹帥本帥搭建了一個(gè)個(gè)人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請(qǐng)移步小程序體驗(yàn)一下哦!(歡迎提建議)

推薦閱讀

牛逼!Python常用數(shù)據(jù)類(lèi)型的基本操作(長(zhǎng)文系列第①篇)

牛逼!Python的判斷、循環(huán)和各種表達(dá)式(長(zhǎng)文系列第②篇)

牛逼!Python函數(shù)和文件操作(長(zhǎng)文系列第③篇)

牛逼!Python錯(cuò)誤、異常和模塊(長(zhǎng)文系列第④篇)

總結(jié)

以上是生活随笔為你收集整理的9个必知的Python操作文件/文件夹方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。