使用Python读取文件列表并检查目录中是否存在文件

时间:2014-02-20 22:32:07

标签: python python-2.7

我希望有人可能对此有个好主意。我在这里没有看到它的答案,尽管我已经看到了我认为需要的一些部分。

我想要一个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,可能很难看!有什么想法吗?

2 个答案:

答案 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))