2017-06-10 12 views
6

Ich weiß über os.path.isfile(fname), aber jetzt brauche ich, wenn eine Datei existiert, um zu suchen, dass FILEnTEST.txt genannt, wobei n eine positive ganze Zahl sein könnte (so könnte es FILE1TEST.txt oder FILE9876TEST.txt sein)Wie überprüfe ich in Python, ob eine Datei existiert, die mit einem Teilstring beginnt oder endet?

ich eine Lösung erraten zu diesem Teil beinhalten könnte dass der Dateiname mit OR beginnt/endet, mit einem Aufruf von os.path.isfile('FILE' + n + 'TEST.txt') und Ersetzen von n durch eine beliebige Zahl, aber ich weiß nicht, wie ich an beide Lösungen herangehen soll.

Antwort

6

Sie benötigen würden Ihr eigenes Filtersystem schreiben, indem Sie alle Dateien in einem Verzeichnis bekommen und sie dann zu einem regulären Ausdruck String-Matching und sehen, ob sie den Test nicht oder nicht:

import re 

pattern = re.compile("FILE\d+TEST.txt") 
dir = "/test/" 
for filepath in os.listdir(dir): 
    if pattern.match(filepath): 
     #do stuff with matching file 

Ich bin nicht in der Nähe einer Maschine mit Python installiert, um den Code zu testen, aber es sollte etwas in diesen Zeilen sein.

2

Sie können einen regulären Ausdruck verwenden:

/FILE\d+TEST.txt/ 

Beispiel: regexr.com.

Dann können Sie den regulären Ausdruck verwenden und alle Dateien in einem Verzeichnis durchlaufen.

import re 
import os 

filename_re = 'FILE\d+TEST.txt' 
for filename in os.listdir(directory): 
    if re.search(filename_re, filename): 
     # this file has the form FILEnTEST.txt 
     # do what you want with it now 
Verwandte Themen