Ich benutze Linux8. Ich habe ein Repo (mit Subrepos) mit Dateien und ich habe eine Liste der Dateinamen (Pfad/zu/Datei/Dateiname.pdf). Ich möchte überprüfen (mit Python), ob diese Dateien alle existieren und wenn nicht, möchte ich das wissen. Also habe ich versucht, die Liste zu lesen, die Listeneinträge mit einer for-Schleife zu iterieren und diese mit os.path.isfile() zu verwenden.python: Wie os.path.isfile() in einer Liste (von Pfaden) verwendet wird?
z. Ich habe ein Repo mit folgenden Dateien: list.txt, test1.txt und test2.txt.
Die Datei list.txt enthält die Dateinamen (hier: 'test1.txt' 'test2.txt').
os.path.isfile('test1.txt')
gibt ein
True
Aber für Schleife ...
import os
with open('list.txt', 'r') as f:
pathlist=f.readlines()
for path in pathlist:
print(os.path.isfile(path))
... gibt:
False
False
obwohl
type(path)
ist
<type 'str'>
Es ist fühlt sich an wie Python zwei Arten von Zeichenketten unterscheidet. Weiß jemand, woher das kommt?
Art von. Python unterscheidet Zeichenfolgen mit einer neuen Zeile am Ende von Zeichenfolgen ohne. Versuchen Sie, ['strip()'] (https://docs.python.org/2/library/stdtypes.html#str.strip) in den von Ihrer Datei gelesenen Zeilen aufzurufen. – khelwood
Probieren Sie 'print (repr (Pfad))' ... 'readlines' streicht Newline nicht, Sie müssen das selbst tun. – tdelaney
'pathlist = map (str.strip, pathlist)' wird den Job erledigen –