第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

pathlib glob('*') 和 iterdir 有什么區(qū)別?

pathlib glob('*') 和 iterdir 有什么區(qū)別?

幕布斯6054654 2023-03-22 17:17:26
假設(shè)我正在使用 編寫代碼pathlib,并且我想遍歷目錄同一級別中的所有文件。我可以通過兩種方式做到這一點:p = pathlib.Path('/some/path')for f in p.iterdir():    print(f)p = pathlib.Path('/some/path')for f in p.glob('*'):    print(f)有哪一種選擇更好嗎?
查看完整描述

2 回答

?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗 獲得超21個贊

為什么要將 API 用于針對過濾器模式的額外工作解析和測試,而您可以……不是?

glob當(dāng)您需要使用過濾功能并且過濾器簡單且基于字符串時更好,因為它簡化了工作。當(dāng)然,手寫簡單匹配(iterdir通過if path.endswith('.txt'):而不是 過濾glob('*.txt'))可能比基于正則表達(dá)式的模式匹配glob隱藏更有效,但考慮到磁盤 I/O 慢幾個數(shù)量級,重新發(fā)明輪子通常不值得。

但是,如果您根本不需要過濾功能,請不要使用它。glob在代碼簡單性或功能方面對您沒有任何好處,并且會損害性能,因此只需使用iterdir.


查看完整回答
反對 回復(fù) 2023-03-22
?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗 獲得超7個贊

行為上至少存在一個差異:

如果該目錄不存在,iterdir()則引發(fā)一個FileNotFoundError.?glob('*')將這種情況視為一個空文件夾,返回一個空的可迭代對象。

>>> import pathlib

>>> path = pathlib.Path('/some/path')

>>> list(path.glob('*'))

[]

>>> list(path.iterdir())

Traceback (most recent call last):

? [...]

FileNotFoundError: [Errno 2] No such file or directory: '/some/path'


查看完整回答
反對 回復(fù) 2023-03-22
  • 2 回答
  • 0 關(guān)注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號