簡體   English   中英

來自多個路徑的 glob.glob

[英]glob.glob from multiple paths

我有以下代碼

os.chdir("X:\data1")
for file in glob.glob("*.pdf"):

X:\data1\目錄中查找所有.pdf文件

我還想在Y:\data2\目錄中找到所有.txt文件

我在源代碼的多個地方都有這個片段,所以我只想做一點改變。

這樣的事情會做嗎?

import os
import glob


def ignore_case(pattern):
    return ''.join((f'[{c.lower()}{c.upper()}]' if c.isalpha() else c for c in pattern))


def multi_glob(patterns):
    for path, pattern in patterns:
        yield from glob.iglob(os.path.join(path, ignore_case(pattern)))


list(multi_glob((("X:\data1", "*.pdf"), ("Y:\data2", "*.txt"))))

本質上,而不是os.chdir(path); glob.glob(pattern) os.chdir(path); glob.glob(pattern)你可以做glob.glob(os.path.join(path, pattern)) 如果您希望這種情況發生在多個路徑/模式組合中,您可以通過它們進行循環。 最后,要獲得不區分大小寫的模式,只需將模式的每個字母c替換為[cC]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM