用于检查文本文件中是否存在文件名的Python代码

2024-09-27 01:26:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,要求就像我有一个平面文件,其中提到了3个文件名,我需要检查在平面文件中写入的文件名是否存在于目录中。 下面提到的是我的代码。但每次它向我显示的文件并不存在于文件所在的位置

我的平面文件名是filename.txt。我有3个入口

  • TEST-WMS-0132-EN2-006.tar
  • TEST-WMS-0132-EN2-004.tar
  • TEST-WMS-0132-EN2-005.tar

我需要逐行读取文件名并检查目录中是否存在文件。但我不知道为什么这个代码不起作用。平面文件以及同一目录中的3个文件

with open('filename.txt','r') as f:
    line = f.readlines()
    print(line)
    for fh in line:
        print(fh)
        if path.exists(fh):
            print (fh,"File exist")
        else:
            print (fh,"File not exist")
            sys.exit(0)

Tags: 文件代码test目录txt文件名linetar
2条回答

下面的代码将创建一个dict,其中文件名指向一个布尔值,告诉您该文件是否存在

from os import path
with open('filename.txt','r') as f:
    file_names = [l.strip() for l in f.readlines()]
    exists = {fn: path.exists(fn) for fn in file_names}

这是因为readlines包含尾随的换行符字符

因此,您需要手动剥离它(通常使用str.stripstr.rstrip以提高安全性),因为您的文件名可能不包含换行符

除此之外,readlines在这里并不是真正必要的,您可以直接迭代文件。但是,在文本模式下使用open时,您确实应该为它提供显式编码,否则它将使用locale.getpreferredencoding(False)返回的任何垃圾,而这通常不是您想要的(尤其是在windows系统上)

相关问题 更多 >

    热门问题