【发布时间】:2017-09-21 07:41:51
【问题描述】:
我正在使用 linux8。我有一个包含文件的 repo(带有 subrepos),并且我有一个文件名列表(path/to/file/filename.pdf)。我想检查(使用python),如果这些文件都存在,如果不存在,我想知道。所以我尝试阅读列表,使用 for 循环迭代列表条目并使用 os.path.isfile() 的条目。
例如我有一个包含以下文件的仓库: 列表.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区分了两种类型的字符串。有谁知道,这是从哪里来的?
【问题讨论】:
-
那种。 Python 区分末尾有换行符的字符串和没有换行符的字符串。尝试在从文件中读取的行上调用
strip()。 -
试试
print(repr(path))...readlines不会去掉换行符,你需要自己做。 -
pathlist = map(str.strip, pathlist)将完成这项工作
标签: python path file-exists