1041 Stimmen

Alle Dateien in einem Verzeichnis mit der Erweiterung .txt in Python finden

Wie kann ich alle Dateien in einem Verzeichnis mit der Erweiterung .txt in Python?

3132voto

ghostdog74 Punkte 305138

Sie können verwenden glob :

import glob, os
os.chdir("/mydir")
for file in glob.glob("*.txt"):
    print(file)

oder einfach os.listdir :

import os
for file in os.listdir("/mydir"):
    if file.endswith(".txt"):
        print(os.path.join("/mydir", file))

oder wenn Sie ein Verzeichnis durchqueren wollen, verwenden Sie os.walk :

import os
for root, dirs, files in os.walk("/mydir"):
    for file in files:
        if file.endswith(".txt"):
             print(os.path.join(root, file))

360voto

Muhammad Alkarouri Punkte 22748

Verwenden Sie Globus .

>>> import glob
>>> glob.glob('./*.txt')
['./outline.txt', './pip-log.txt', './test.txt', './testingvim.txt']

221voto

Adam Byrtek Punkte 11613

Etwas in dieser Art sollte die Aufgabe erfüllen

for root, dirs, files in os.walk(directory):
    for file in files:
        if file.endswith('.txt'):
            print(file)

206voto

MSeifert Punkte 131411

Sie können einfach Folgendes verwenden pathlib s glob 1 :

import pathlib

list(pathlib.Path('your_directory').glob('*.txt'))

oder in einer Schleife:

for txt_file in pathlib.Path('your_directory').glob('*.txt'):
    # do something with "txt_file"

Wenn Sie es rekursiv wollen, können Sie .glob('**/*.txt')


1 El pathlib Modul wurde in die Standardbibliothek von Python 3.4 aufgenommen. Aber Sie können Backports dieses Moduls auch auf älteren Python-Versionen installieren (z.B. mit conda ou pip ) : pathlib y pathlib2 .

162voto

Seth Punkte 42154

So etwas wird funktionieren:

>>> import os
>>> path = '/usr/share/cups/charmaps'
>>> text_files = [f for f in os.listdir(path) if f.endswith('.txt')]
>>> text_files
['euc-cn.txt', 'euc-jp.txt', 'euc-kr.txt', 'euc-tw.txt', ... 'windows-950.txt']

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X