【发布时间】:2014-04-17 01:32:38
【问题描述】:
我提前道歉,因为我对 python 非常陌生,并且我编写了一个我认为非常简单的脚本来查找丢失的目录。该脚本一次一行地从文件中读取(每行包含一个 unix 样式目录),然后检查该目录是否存在,如果不存在则显示一条消息并将该目录写入输出文件.
问题是我在输出文件中有目录存在,我不确定为什么会这样......
我确定输出文件中列出的第一个目录存在,因为我检查了文件开头的前十几个目录。我一直看到第一个目录确实存在,但我检查过的其余目录不存在。我什至在 python 交互模式下运行了相同的检查,它返回 True 所以我不明白为什么这个目录被写入输出文件。
有什么想法吗?
import os
f = open('missingdirs.out', 'w')
for line in file('alldirs.txt', 'r'):
if not os.path.exists(line.strip()):
print "Could not find the path specified: " + line.strip()
f.write(line.strip()+'\n')
f.close()
下面的输入文件示例(这些是绝对路径):
/home/sites/shared/lingui/course/0418-0001_AUT_Can
/home/sites/shared/lingui/course/0418-0001_AUT_Do
/home/sites/shared/lingui/course/0418-0001_AUT_How
/home/sites/shared/lingui/course/0418-0001_AUT_Is-Are
/home/sites/shared/lingui/course/0418-0001_AUT_What
/home/sites/shared/lingui/course/0418-0001_AUT_When
/home/sites/shared/lingui/course/0418-0001_AUT_Where
【问题讨论】:
-
您能否也添加一个输入文件的样本?
-
听起来
alldirs.txt不像你想象的那样工作 -
此外 - 当您使用 .strip() 时,您只删除空格 - 当您检查目录是否存在时,请确保您的字符串中没有 \n、\r 或类似的东西。
-
alldirs.txt 包含相对文件名还是绝对文件名?如果是相对的,你会想用
os.getcwd()os.path.join()他们。 -
谢谢大家。我在上面添加了输入文件的示例。这些目录是绝对路径。
标签: python