簡體   English   中英

如何使用os.walk或glob.glob獲取目錄中所有類型的文件擴展名

[英]How to get all type of file extensions within a directory using os.walk or glob.glob

我有一個從目錄中檢測文件語言的代碼。 但是,在提到擴展名類型時,我如何才能檢測目錄中所有文件擴展名(例如:.pdf,.xlsx,.docx等)的語言,而不僅是代碼中提到的.txt文件。 附加代碼以供參考。 我想知道如何使用glob和os.walk做到這一點。

import csv
from fnmatch import fnmatch
try:
    from langdetect import detect
except ImportError:
    detect = lambda _: '<dunno>'
import os

rootdir = '.'  # current directory
extension = '.txt'
file_pattern = '*' + extension

with open('output.csv', 'w', newline='', encoding='utf-8') as outfile:
    csvwriter = csv.writer(outfile)

    for dirpath, subdirs, filenames in os.walk(os.path.abspath(rootdir)):
        for filename in filenames:
            if fnmatch(filename, file_pattern):
                lang = detect(os.path.join(dirpath, filename))
                csvwriter.writerow([dirpath, filename, lang])

IIUC,您可以將fnmatch檢查替換為

eoi = ['*.pdf', '*.xlsx', '*.docx', '*.txt']     # extensions of interest list
if any(fnmatch(file, ext) for ext in eoi):
    lang = ... 

暫無
暫無

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

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