我正在使用linux8。我有一个包含文件的repo(带有subrepos),我有一个文件名列表(path/to/file/filename.pdf)。我想检查(使用Python),如果这些文件都存在,如果不存在,我想知道这一点。所以我尝试阅读列表,用for循环迭代列表条目,并使用os.path.isfile()。python:如何在列表(路径)上使用os.path.isfile()?
E.g.我有一个包含以下文件的回购: list.txt, test1.txt和 test2.txt。
list.txt包含文件名(这里是:'test1.txt''test2.txt')。
os.path.isfile('test1.txt')
给人
True
但这for循环...
import os
with open('list.txt', 'r') as f:
pathlist=f.readlines()
for path in pathlist:
print(os.path.isfile(path))
...给:
False
False
虽然
type(path)
是
<type 'str'>
这感觉就像是巨蟒区分两种类型的字符串。有谁知道,从哪里来?
的种类。 Python最后从没有字符串的字符串中用新行区分字符串。尝试从文件读取的行上调用['strip()'](https://docs.python.org/2/library/stdtypes.html#str.strip)。 – khelwood
试试'print(repr(path))'''readlines'不去掉换行符,你需要自己去做。 – tdelaney
'pathlist = map(str.strip,pathlist)'将完成这项工作 –