99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用Python來(lái)實(shí)現(xiàn)文件系統(tǒng)的操作功能

科技綠洲 ? 來(lái)源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-30 14:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

近幾年隨著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

outputBook1.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 shutil

for 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)
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1956

    瀏覽量

    36699
  • 文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    297

    瀏覽量

    20401
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70794
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86824
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux文件系統(tǒng)簡(jiǎn)介

    任何一個(gè)操作系統(tǒng)中,文件管理是其基本功能之一,而文件的管理是由文件系統(tǒng)來(lái)完成的。
    發(fā)表于 04-15 11:46 ?2953次閱讀
    Linux<b class='flag-5'>文件系統(tǒng)</b>簡(jiǎn)介

    談?wù)勈裁词?b class='flag-5'>文件系統(tǒng) 文件系統(tǒng)功能與特點(diǎn)

    文件系統(tǒng)的應(yīng)用非常廣泛,同時(shí)種類(lèi)也是特別的多,并且不同平臺(tái)也會(huì)使用不同性能和特點(diǎn)的文件系統(tǒng),比如查找效率、數(shù)據(jù)安全等級(jí)等等,如下面windows使用的NTFS:
    發(fā)表于 08-30 09:50 ?3920次閱讀
    談?wù)勈裁词?b class='flag-5'>文件系統(tǒng)</b> <b class='flag-5'>文件系統(tǒng)</b>的<b class='flag-5'>功能</b>與特點(diǎn)

    車(chē)載MP3中Flash文件系統(tǒng)的設(shè)計(jì)與應(yīng)用

    基于Flash 存儲(chǔ)器的特點(diǎn),詳細(xì)介紹適合于車(chē)載MP3 的Flash 文件系統(tǒng)(包括Flash存儲(chǔ)管理系統(tǒng)和FAT 文件系統(tǒng)) 的具體設(shè)計(jì)。利用Flash 文件系統(tǒng)
    發(fā)表于 05-16 13:54 ?11次下載

    基于C51的數(shù)據(jù)存儲(chǔ)器文件系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)

    本文介紹了一種基于C51編程的文件系統(tǒng)設(shè)計(jì)方法和寫(xiě)文件的算法及過(guò)程。采用FAT1 6文件系統(tǒng)的設(shè)計(jì)思路,實(shí)現(xiàn)文件系統(tǒng)的打開(kāi)、讀寫(xiě)、刪除等基
    發(fā)表于 12-04 16:02 ?26次下載

    文件系統(tǒng)管理操作

    為了方便用戶對(duì)設(shè)備存儲(chǔ)設(shè)備進(jìn)行有效的管理,設(shè)備提供了文件系統(tǒng)功能,實(shí)現(xiàn)對(duì)文件和目錄的訪問(wèn)管理:用戶可以通過(guò)命令行對(duì)文件進(jìn)行創(chuàng)建、移動(dòng)、拷貝、
    發(fā)表于 08-30 15:55 ?0次下載

    使用RT-Thread文件系統(tǒng)

    了解了文件系統(tǒng)的一些常用命令之后,下面帶領(lǐng)大家通過(guò)運(yùn)行文件系統(tǒng)的一些示例程序,來(lái)熟悉文件系統(tǒng)的基本操作。示例程序通過(guò)使用一些 DFS 的 A
    的頭像 發(fā)表于 11-07 10:40 ?9543次閱讀

    嵌入式Linux常用文件系統(tǒng)

    Linux支持很多文件系統(tǒng),在選擇時(shí)應(yīng)根據(jù)應(yīng)用的功能選擇文件系統(tǒng) 內(nèi)核只認(rèn)識(shí)VFS(虛擬文件系統(tǒng)),不同的文件系統(tǒng)
    發(fā)表于 05-04 17:19 ?2610次閱讀
    嵌入式Linux常用<b class='flag-5'>文件系統(tǒng)</b>

    linux文件系統(tǒng)中的虛擬文件系統(tǒng)設(shè)計(jì)詳解

    Linux 中允許眾多不同的文件系統(tǒng)共存,如 ext2, ext3, vfat 等。通過(guò)使用同一套文件 I/O 系統(tǒng) 調(diào)用即可對(duì) Linux 中的任意文件進(jìn)行
    發(fā)表于 04-02 14:37 ?2063次閱讀
    linux<b class='flag-5'>文件系統(tǒng)</b>中的虛擬<b class='flag-5'>文件系統(tǒng)</b>設(shè)計(jì)詳解

    Linux文件系統(tǒng)解析

    在 Linux 中,最直觀、最可見(jiàn)的部分就是 文件系統(tǒng)(file system)。下面我們就來(lái)一起探討一下關(guān)于 Linux 中國(guó)的文件系統(tǒng),系統(tǒng)調(diào)用以及文件系統(tǒng)
    的頭像 發(fā)表于 09-16 11:29 ?2769次閱讀
    Linux<b class='flag-5'>文件系統(tǒng)</b>解析

    文件系統(tǒng)中的日志系統(tǒng)是如何實(shí)現(xiàn)

    因?yàn)?b class='flag-5'>文件系統(tǒng)會(huì)涉及對(duì)磁盤(pán)的多次寫(xiě)操作,如果在寫(xiě)的過(guò)程中系統(tǒng)崩潰了,就會(huì)使得磁盤(pán)上的文件系統(tǒng)處于不一致的錯(cuò)誤狀態(tài)。 日志就是設(shè)計(jì)來(lái)解決因?yàn)?/div>
    的頭像 發(fā)表于 09-29 11:04 ?2495次閱讀
    <b class='flag-5'>文件系統(tǒng)</b>中的日志<b class='flag-5'>系統(tǒng)</b>是如何<b class='flag-5'>實(shí)現(xiàn)</b>的

    xv6的文件系統(tǒng)是如何實(shí)現(xiàn)

    文件系統(tǒng) 。本文直接來(lái)看 xv6 的文件系統(tǒng)這部分是如何實(shí)現(xiàn)的。 文件系統(tǒng)布局 再來(lái)系統(tǒng)的看看 xv6
    的頭像 發(fā)表于 10-12 18:00 ?2801次閱讀
     xv6的<b class='flag-5'>文件系統(tǒng)</b>是如何<b class='flag-5'>實(shí)現(xiàn)</b>的

    何用Python來(lái)操作Excel文件

    今天小編來(lái)介紹一下如何用Python來(lái)操作Excel文件,當(dāng)中需要用到的模塊叫做openpyxl
    發(fā)表于 08-05 11:07 ?1219次閱讀

    Linux的文件系統(tǒng)特點(diǎn)

    ,近期經(jīng)常被讀取和寫(xiě)入,文件系統(tǒng)應(yīng)該有緩存層。 文件應(yīng)該用文件夾的形式組織起來(lái),方便管理和查詢。 Linux內(nèi)核要在自己的內(nèi)存里面維護(hù)一套數(shù)據(jù)結(jié)構(gòu),來(lái)保存哪些
    的頭像 發(fā)表于 11-09 14:48 ?1686次閱讀
    Linux的<b class='flag-5'>文件系統(tǒng)</b>特點(diǎn)

    如何實(shí)現(xiàn)Python復(fù)制文件操作

    Python 中有許多“開(kāi)蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會(huì)看到一些用 Python
    的頭像 發(fā)表于 07-18 14:53 ?813次閱讀

    如何修改buildroot和debian文件系統(tǒng)

    本文檔主要介紹在沒(méi)有編譯環(huán)境的情況下,如何修改buildroot和debian文件系統(tǒng)方法,如在buildroot文件系統(tǒng)中添加文件、修改目錄等文件
    的頭像 發(fā)表于 07-22 17:46 ?900次閱讀
    如何修改buildroot和debian<b class='flag-5'>文件系統(tǒng)</b>