Ich versuche, den Inhalt aller Dateien in einem bestimmten Verzeichnis zu lesen. Ich finde es ein bisschen schwierig, wenn der Pfadname nicht mit /
endet, dann wird mein Code unten nicht funktionieren (wird E/A-Ausnahme haben, da pathName+f
nicht gültig ist - in der Mitte fehlt /
). Hier ist ein Codebeispiel zu zeigen, wenn es funktioniert und wenn es nicht funktioniert,elegante Möglichkeit zu überprüfen Datei Verzeichnispfad gültig in Python 2.7
Ich kann tatsächlich überprüfen, ob pathName mit /
endet, indem ich endendsWith, nur frage mich, ob elegantere Lösungen, wenn Pfad und Dateiname für einen vollständigen Namen verketten?
Meine Anforderung ist, ich möchte geben Eingabe Pfadname flexibler zu endet mit beiden \
und endet nicht mit \
.
Verwenden von Python 2.7.
from os import listdir
from os.path import isfile, join
#pathName = '/Users/foo/Downloads/test/' # working
pathName = '/Users/foo/Downloads/test' # not working, since not ends with/
onlyfiles = [f for f in listdir(pathName) if isfile(join(pathName, f))]
for f in onlyfiles:
with open(pathName+f, 'r') as content_file:
content = content_file.read()
print content
Warum verwenden Sie sowohl 'os.path.join (Pfadname, f)' und 'Pfadname + f'? – Blender
Danke @Blender, vote up. –