Python:" FileNotFoundError"尽管能够打印这样的文件

时间:2018-06-05 18:33:30

标签: python-3.x

我正在使用Python3脚本,其中代码遍历目录和子目录以提取所有gzip压缩文件。 我还想补充说文件不在我的主目录中

file_path = os.path.join('/nappa7/pip73/Service')   
walk_file(parallel_bulk, file_path)

也许python不是在寻找我认为它在哪里,但是,这里是我的walk_file函数:

def walk_file(bulk, file_path): 
warc = warcat.model.WARC()
try:
    for (file_path,dirs,files) in os.walk(file_path):
        for filenames in files:
            if filenames.endswith('.warc.gz'):
                warc.load(filenames)
except ValueError:
    pass

当我用如下的print语句替换warc.load(文件名)时:

            if filenames.endswith('.warc.gz'):
                print(filenames)    

文件名按预期打印到控制台上。因此,它让我相信python能够成功找到所有warc.gz文件。但是,当我尝试warc.load(文件名)时,我得到:

FileNotFoundError: [Errno 2] No such file or directory: 'Sample.warc.gz'

我当然可以使用一些指导。 谢谢。

所以对于有类似问题的其他人: 将代码更改为此工作:

warc.load(os.path.join(file_path, filenames))

1 个答案:

答案 0 :(得分:1)

您需要使用os.path.join(file_path, filenames)而非filenames

否则操作系统将在当前目录中查找该文件,而不是file_path

(为什么filenames复数引用单个文件名?)