溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

pathlib模塊怎么在python中使用

發(fā)布時(shí)間:2021-04-23 17:53:38 來(lái)源:億速云 閱讀:187 作者:Leah 欄目:編程語(yǔ)言

這篇文章給大家介紹pathlib模塊怎么在python中使用,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

python有哪些常用庫(kù)

python常用的庫(kù):1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。

一、pathlib 模塊介紹

為了讓文件處理變得更簡(jiǎn)單,Python 在 3.4 版本引入了一個(gè)新的標(biāo)準(zhǔn)庫(kù)模塊:pathlib。

pathlib 模塊基于面向?qū)ο笏枷朐O(shè)計(jì),封裝了非常多與文件操作相關(guān)的功能。

如果使用它來(lái)改寫上面的代碼,結(jié)果會(huì)大不相同。

二、python中pathlib模塊的用法

1、使用 pathlib 模塊改寫代碼

原代碼:

import os.path


def unify_ext_with_os_path(path):
    """統(tǒng)一目錄下的 .txt 文件名后綴為 .csv
    """
    for filename in os.listdir(path):
        basename, ext = os.path.splitext(filename)
        if ext == '.txt':
            abs_filepath = os.path.join(path, filename)
            os.rename(abs_filepath, os.path.join(path, f'{basename}.csv'))

使用 pathlib 模塊后的代碼:

from pathlib import Path

def unify_ext_with_pathlib(path):
    for fpath in Path(path).glob('*.txt'):
        fpath.rename(fpath.with_suffix('.csv'))

和舊代碼相比,新函數(shù)只需要兩行代碼就完成了工作。

2、使用 / 運(yùn)算符來(lái)組合文件路徑

# 舊朋友:使用 os.path 模塊
>>> import os.path
>>> os.path.join('/tmp', 'foo.txt')
'/tmp/foo.txt'

# 新潮流:使用 / 運(yùn)算符
>>> from pathlib import Path
>>> Path('/tmp') / 'foo.txt'
PosixPath('/tmp/foo.txt')

3、使用 .read_text() 來(lái)快速讀取文件內(nèi)容

# 標(biāo)準(zhǔn)做法,使用 with open(...) 打開文件
>>> with open('foo.txt') as file:
...     print(file.read())
...
foo

# 使用 pathlib 可以讓這件事情變得更簡(jiǎn)單
>>> from pathlib import Path
>>> print(Path('foo.txt').read_text())
foo

4、使用pathlib中Path 對(duì)象與只接受字符串路徑的標(biāo)準(zhǔn)庫(kù)函數(shù)兼容使用

>>> p = Path('/tmp')
# 可以直接對(duì) Path 類型對(duì)象 p 進(jìn)行 join
>>> os.path.join(p, 'foo.txt')
'/tmp/foo.txt'

關(guān)于pathlib模塊怎么在python中使用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI