Ich möchte alle Dateien in einem Verzeichnis lesen. Verzeichnis enthält folgende Dateien:Python: Wie liest man alle Dateien im Verzeichnis mit bestimmten Bedingungen?
ABC11_1.csv
ABC11_3.csv
ABC11_2.csv
ABC13_4.csv
ABC13_1.csv
ABC17_6.csv
ABC17_2.csv
ABC17_4.csv
ABC17_8.csv
Wenn ich mein Skript betreibe ich diesen Dateinamen geben wollen auf der Konsole im Format wie: ABC11.
Danach möchte ich alle Dateien mit nur ABC11-Erweiterungen in der sortierten Reihenfolge lesen. d.h. zuerst ABC11_1.csv, ABC11_2.csv, ABC11_3.csv so.
Wenn Benutzer gibt nur ABC-Anwendung muss Fehlermeldung geben. Wenn der Benutzer nur ABC1 gibt, dann ist es eine gültige Anwendung, die dies akzeptiert und das Verzeichnis nach Dateien mit der Erweiterung ABC1 eincheckt, falls vorhanden, dann verarbeite die Dateien in sortierter Reihenfolge, wenn nicht, dann Fehlermeldung.
Programm-Code-
from glob import glob
import os
import sys
file_pattern = ''
files_list = list()
arguments = {'ABC', 'PQR', 'XYZ'}
if len(sys.argv[1:2]) is 1:
file_pattern = str(sys.argv[1:2])
else:
print 'run as <python test.py ABC>'
sys.exit(1)
if file_pattern in arguments:
print '<Provide LineName with some Number>'
sys.exit(1)
file_pattern = file_pattern.replace('[','').replace(']','').replace('\'','')
if file_pattern.startswith('ABC',0,3):
files_list = glob(os.path.join('<directory name>', str(file_pattern)+'_*.csv'))
else:
print 'No Such File --> ' + str(file_pattern)+ '\t <Provide appropriate Name>'
sys.exit(1)
if files_list:
for a_file in sorted(files_list):
print a_file
#process file
else:
print 'No Such File --> ' + str(file_pattern)+ '\t <Provide appropriate Name>'
sys.exit(1)
Ich bin wie das zu tun, und es Arbeit für mich in Ordnung, aber ist, dass andere beste Möglichkeiten, um diese Dinge zu tun. Bitte geben Sie alle Ihre Antworten an?
Danke.
arbeiten @ userxxx- Ist es alle meine Anforderungen erfüllen, die ich in der Frage zur Verfügung gestellt? – kit
Ja, versuchen Sie, diesen Code auszuführen .. es kann einige kleine Änderungen entsprechend Ihrer Anforderung geben. Aber ich denke, das wird nach dem funktionieren, was Sie in Ihrer Frage erwähnt haben – userxxx
@ userxxx- Wenn Benutzer geben ABC1 Argument, so sollte es nur für ABC1_ (whaterver) -Datei überprüfen. Es sollte keine ABC11_1.csv-Datei zurückgeben. – kit