我希望有人可能对此有个好主意。我在这里没有看到它的答案,尽管我已经看到了我认为需要的一些部分。
我想要一个Python脚本来读取文本文件,并检查该文本文件中列出的每个文件名是否存在。然后我喜欢它将TRUE和FALSE值写入text / csv。
源文本文件(称为dirlist)如下所示:
file1.pdf
file2.pdf
我的Python仅限于搜索互联网并将各种东西拼凑在一起。我正在努力学习!
我在想什么:
with open("dirlist") as f:
for line in f:
if os.path.exists():
open("status", 'w')
write TRUE
else:
open("status", 'w')
write FALSE
我知道这不是Pythonic,可能很难看!有什么想法吗?
答案 0 :(得分:1)
你基本上有正确的想法,但你可以稍微简化你的代码:
with open('dirlist', 'r') as f, open('status', 'w') as status:
for line in f.readlines():
exists = os.path.exists(line)
status.write(str(exists).upper())
请注意,这样,我们确保不会泄漏'status'
的文件句柄(通过将其包含在with
语句中)。我们也不需要使用if
语句 - 我们可以将os.path.exists()
的布尔返回值字符串化。在此处使用f.readlines()
可确保我们不会在每行末尾获取换行符(\n
或\r
或\r\n
,具体取决于您的操作系统)。
答案 1 :(得分:0)
outfile = open("out.csv","w")
with open("dirlist") as f:
result = list(map(os.path.exists,f))
outfile.write(str(result).upper()[1:-1])
outfile.close()
你可能需要做
result = list(map(lambda fname:os.path.exists(fname.strip()),f))