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

Python四大模塊文件管理介紹

 更新時間:2022年09月23日 10:37:47   作者:A-L-Kun  
我們可以使用python來操作文件,比如讀取文件內(nèi)容、寫入新的內(nèi)容等,本文主要介紹了Python IO文件管理的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一、os模塊

1、方法大綱

2、常用方法

方法描述
getcwd()獲取當前工作目錄
chdir(path)將當前的工作目錄更改為指定的路徑
listdir(path=None)列出指定目錄中的文件名。如果 path 為 None,則使用 path=‘.’。
mkdir(path, mode=511, *, dir_fd=None)創(chuàng)建目錄
makedirs(name, mode=511, exist_ok=False)遞歸創(chuàng)建多層目錄
rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)重命名文件或目錄
remove(path, *, dir_fd=None)刪除文件
rmdir(path, *, dir_fd=None)刪除目錄
removedirs(name)遞歸刪除目錄,從子目錄到父目錄逐層嘗試刪除,遇到目錄非空拋出異常。
walk(top, topdown=True, onerror=None, followlinks=False)遍歷 top 路徑下的所有子目錄,返回一個包含 3 個元素的元組:(dirpath, dirnames, filenames)。
os.curdir指代當前目錄(‘.’)
os.pardir指代上一級目錄(‘…’)
os.sep路徑分割符(Windows 為 ‘\’,Linux 為 ‘/’)
os.linesep行終止符(Windows 為 ‘\r\n’,Linux 為 ‘\n’)
os.name指代當前使用的操作系統(tǒng)(Windows 系統(tǒng)為 ‘nt’,Linux 為 ‘posix’)

二、glob模塊

1、方法大綱

glob模塊也是Python標準庫中一個重要的模塊,主要用來查找符合特定規(guī)則的目錄和文件,并將搜索的到的結(jié)果返回到一個列表中。使用這個模塊最主要的原因就是,該模塊支持幾個特殊的正則通配符,用起來賊方便,這個將會在下方為大家進行詳細講解。

2、使用示例

import glob
path1 = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a\[0-9].png"
print(glob.glob(path1))
path2 = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a\[0-9a-z].*"
print(glob.glob(path2))

注意:這個函數(shù)里面還有一個參數(shù),recursive,當其為真時,則模式’**'將與任何文件匹配,并且

零或更多目錄和子目錄。

三、shutil模塊

1、方法大綱

os模塊是Python標準庫中一個重要的模塊,里面提供了對目錄和文件的一般常用操作。而Python另外一個標準庫——shutil模塊,它作為os模塊的補充,提供了復制、移動、刪除、壓縮、解壓等操作,這些 os 模塊中一般是沒有提供的。但是需要注意的是:shutil模塊對壓縮包的處理是調(diào)用ZipFileTarFile這兩個模塊來進行的。

2、壓縮包

對壓縮包管理是使用zipfile模塊

import zipfile
import os
file_list = os.listdir(os.getcwd())  # 獲取當前目錄
# 將上述所有文件,進行打包,使用“w”
with zipfile.ZipFile(r"我創(chuàng)建的壓縮包.zip", "w") as zipobj:  # 對文件進行壓縮
    for file in file_list:
        zipobj.write(file)  # 將文件寫入壓縮包中

四、pathlib模塊

1、對比圖

操作os and os.pathpathlib
絕對路徑os.path.abspathPath.resolve
修改權(quán)限os.chmodPath.chmod
創(chuàng)建目錄os.mkdirPath.mkdir
重命名os.renamePath.rename
移動os.replacePath.replace
刪除目錄os.rmdirPath.rmdir
刪除文件os.remove, os.unlinkPath.unlink
工作目錄os.getcwdPath.cwd
是否存在os.path.existsPath.exists
用戶目錄os.path.expanduserPath.expanduser and Path.home
是否為目錄os.path.isdirPath.is_dir
是否為文件os.path.isfilePath.is_file
是否為連接os.path.islinkPath.is_symlink
文件屬性os.statPath.stat, Path.owner, Path.group
是否為絕對路徑os.path.isabsPurePath.is_absolute
路徑拼接os.path.joinPurePath.joinpath
文件名os.path.basenamePurePath.name
上級目錄os.path.dirnamePurePath.parent
同名文件os.path.samefilePath.samefile
后綴os.path.splitextPurePath.suffix

2、路徑獲取

獲取當前工作目錄

import pathlib
print(pathlib.Path.cwd())  # 雖然在這里打印出來的很像一個字符串,但實際上得到的是一個WindowsPath對象
# 其實現(xiàn)了 __repr__ 和 __str__ 底層方法
print(pathlib.Path(__file__))  # 獲取當前文件路徑

工作目錄是在哪個目錄下運行你的程序,不是項目目錄

獲取家目錄

import pathlib
print(pathlib.Path.home())  # 獲取當前用戶的家目錄

獲取文件絕對路徑

from pathlib import Path
# 當前文件路徑
p = Path(__file__)
print(p)  
print(p.absolute())  # 將路徑轉(zhuǎn)換為絕對路徑,p.resolve()功能也是一樣的

遍歷當前目錄

from pathlib import Path
# 當前文件路徑
p = Path('files')
for i in p.iterdir():
    print(i.absolute())

"""運行結(jié)果:
C:\Users\3500\PycharmProjects\untitled3\demo\files\json
C:\Users\3500\PycharmProjects\untitled3\demo\files\username.txt
C:\Users\3500\PycharmProjects\untitled3\demo\files\yaml
"""

3、文件屬性

from pathlib import Path
# 當前文件路徑
p = Path(__file__)
print(p.absolute())   # 獲取絕對路徑
print(p.resolve())    # 獲取絕對路徑
print(p.name)   # 獲取文件名稱 'test.py'
print(p.stem)    # 只要文件名,不要后綴 test
print(p.suffix)  # 獲取文件 后綴.py
print(p.suffixes)  # 文件所有的后綴 ['.py']
print(p.parts)  # 拆分('C:\\', 'Users', '3500', 'PycharmProjects', 'untitled3', 'demo', 'test.py')
print(p.parent)  # 獲取當前路徑的父級目錄,C:\Users\35000\PycharmProjects\untitled3\demo
print(p.parent.parent)  # C:\Users\3500\PycharmProjects\untitled3
print(p.parents)  # 所有的父級 <WindowsPath.parents>
print(p.anchor)  # 錨,目錄前面的部分 C:\ 或者 /

4、文件判斷

from pathlib import Path
# 1.  is_file() 判斷是不是文件
print(Path.cwd().is_file())  # False
# 2.  is_dir() 判斷是不是文件夾
print(Path.cwd().is_dir())  # True
# exists() 判斷文件是否存在
p = Path('./data.json')
print(p.exists())  # True or False
from pathlib import Path
# 當前文件路徑
p = Path(__file__)  # 獲取當前文件的路徑
print(p.is_absolute())  # True

5、路徑拼接

from pathlib import Path
# 當前文件路徑
p = Path('./')
print(p.absolute())  # C:\Users\3500\PycharmProjects\untitled3\demo
print(p.joinpath('data.json'))  # data.json
print(p.joinpath('data.json').absolute())   # C:\Users\3500\PycharmProjects\untitled3\demo\data.json
# 拼接多層
print(p.joinpath('files', 'data.json'))   # files\data.json
print(p.joinpath('files', 'data.json').absolute())  # C:\Users\3500\PycharmProjects\untitled3\demo\files\data.json

6、正則匹配

使用模式匹配(正則表達式)匹配指定的路徑。glob 只會匹配當前目錄下, rglob 會遞歸所有子目錄

比如在當前腳本的 files 目錄有以下文件夾和子文件

from pathlib import Path
p = Path('files')
# glob 只會遍歷查找當前目錄
print(p.glob('*.txt'))  # <generator object Path.glob at 0x000001A44565A518>
print([i for i in p.glob('*.txt')])  # [WindowsPath('files/username.txt')]
print([i for i in p.glob('*.yml')])  # []
# rglob 只會遍歷查找當前目錄以及其子目錄
print(p.rglob('*.txt'))  # <generator object Path.glob at 0x000001A44565A518>
print([i for i in p.rglob('*.txt')])  # [WindowsPath('files/username.txt')]
print([i for i in p.rglob('*.yml')])  # [WindowsPath('files/yaml/aa.yml'), WindowsPath('files/yaml/bb.yml')]
p_ = Path('data.json')
# math 檢查匹配規(guī)則
print(p_.match('*.json'))  # True

7、讀寫操作

pathlib 對讀取和寫入進行了簡單的封裝,不再需要重復去打開文件和管理文件的關(guān)閉了。

  1. .read_text() 讀取文本
  2. .read_bytes() 讀取 bytes
  3. .write_text() 寫入文本
  4. .write_bytes() 寫入 tytes
from pathlib import Path
p = Path('yo.txt')
p.write_text("hello world")
print(p.read_text())  # hello world

file.write 操作使用的是 w 模式,如果之前已經(jīng)有文件內(nèi)容,將會被覆蓋。

當然,pathlib還可以進行文件的創(chuàng)建,刪除,以及修改操作,其與os中的方法一樣,可以自行去研究

到此這篇關(guān)于Python四大模塊文件管理介紹的文章就介紹到這了,更多相關(guān)Python文件管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python基礎(chǔ)之numpy庫的使用

    Python基礎(chǔ)之numpy庫的使用

    這篇文章主要介紹了Python基礎(chǔ)之numpy庫的使用,文中有非常詳細的代碼示例,對正在學習python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Python使用日志模塊快速調(diào)試代碼并記錄異常信息

    Python使用日志模塊快速調(diào)試代碼并記錄異常信息

    本文詳細介紹了Python logging日志模塊的使用方法,包括如何在代碼中使用logging記錄調(diào)試信息、如何設(shè)置日志級別、如何記錄異常信息等。通過本文的指南,讀者可以快速學會如何使用logging模塊進行調(diào)試,并保留有用的日志信息,便于后續(xù)排查問題和優(yōu)化代碼
    2023-04-04
  • pytorch如何自定義數(shù)據(jù)集

    pytorch如何自定義數(shù)據(jù)集

    這篇文章主要介紹了pytorch自定義數(shù)據(jù)集,在識別手寫數(shù)字的例子中,數(shù)據(jù)集是直接下載的,但如果我們自己收集了一些數(shù)據(jù),存在電腦文件夾里,我們該如何把這些數(shù)據(jù)變?yōu)榭梢栽赑yTorch框架下進行神經(jīng)網(wǎng)絡(luò)訓練的數(shù)據(jù)集呢,即如何自定義數(shù)據(jù)集呢,需要的朋友可以參考下
    2024-01-01
  • python實現(xiàn)遍歷文件夾修改文件后綴

    python實現(xiàn)遍歷文件夾修改文件后綴

    這篇文章主要介紹了python實現(xiàn)遍歷文件夾修改文件后綴,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 在PyTorch中實現(xiàn)高效的多進程并行處理

    在PyTorch中實現(xiàn)高效的多進程并行處理

    PyTorch是一個流行的深度學習框架,一般情況下使用單個GPU進行計算時是十分方便的,但是當涉及到處理大規(guī)模數(shù)據(jù)和并行處理時,需要利用多個GPU,所以這篇文章我們將介紹如何利用torch.multiprocessing模塊,在PyTorch中實現(xiàn)高效的多進程處理,需要的朋友可以參考下
    2024-07-07
  • Django form表單與請求的生命周期步驟詳解

    Django form表單與請求的生命周期步驟詳解

    這篇文章主要介紹了Django-form表單與請求的生命周期,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Python三元運算實現(xiàn)方法

    Python三元運算實現(xiàn)方法

    這篇文章主要介紹了Python三元運算實現(xiàn)方法,通過if else語句實現(xiàn)了三元運算的功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • 利用Python抓取網(wǎng)頁數(shù)據(jù)的多種方式與示例詳解

    利用Python抓取網(wǎng)頁數(shù)據(jù)的多種方式與示例詳解

    在數(shù)據(jù)科學和網(wǎng)絡(luò)爬蟲領(lǐng)域,網(wǎng)頁數(shù)據(jù)抓取是非常重要的一項技能,Python 是進行網(wǎng)頁抓取的流行語言,因為它擁有強大的第三方庫,能夠簡化網(wǎng)頁解析和數(shù)據(jù)提取的過程,本篇文章將介紹幾種常見的網(wǎng)頁數(shù)據(jù)抓取方法,需要的朋友可以參考下
    2025-04-04
  • Python處理Excel表中單元格帶有換行的數(shù)據(jù)問題

    Python處理Excel表中單元格帶有換行的數(shù)據(jù)問題

    這篇文章主要介紹了Python處理Excel表中單元格帶有換行的數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python實現(xiàn)清理重復文件功能的示例代碼

    Python實現(xiàn)清理重復文件功能的示例代碼

    在電腦上或多或少的存在一些重復文件,體積小的倒沒什么,如果體積大的就很占內(nèi)存了。本文用python制作了一個刪除重復文件的小工具,核心代碼很簡單,希望對你有所幫助
    2022-07-07

最新評論

东乡族自治县| 谷城县| 保靖县| 莎车县| 阜新市| 巴青县| 富裕县| 阳西县| 南安市| 西林县| 莒南县| 阿克| 桐庐县| 西和县| 清流县| 辰溪县| 穆棱市| 尼勒克县| 抚远县| 尖扎县| 平顶山市| 土默特左旗| 横山县| 宣威市| 大同市| 通州市| 翁牛特旗| 仪陇县| 达拉特旗| 宁津县| 白水县| 行唐县| 陇西县| 将乐县| 瑞安市| 伊春市| 淅川县| 闽清县| 依兰县| 塘沽区| 银川市|