Python 3.x 巨蟒:“;FileNotFoundError";尽管能够打印这样的文件

Python 3.x 巨蟒:“;FileNotFoundError";尽管能够打印这样的文件,python-3.x,Python 3.x,我正在编写一个Python3脚本,其中代码遍历目录和子目录,以提取所有gzip warc文件。 我还想补充一点,这些文件不在我的主目录中 file_path = os.path.join('/nappa7/pip73/Service') walk_file(parallel_bulk, file_path) 也许python没有看到我认为它应该看到的地方,但是,下面是我的walk_文件函数: def walk_file(bulk, file_path): warc = warcat.m

我正在编写一个Python3脚本,其中代码遍历目录和子目录,以提取所有gzip warc文件。 我还想补充一点,这些文件不在我的主目录中

file_path = os.path.join('/nappa7/pip73/Service')   
walk_file(parallel_bulk, file_path)
也许python没有看到我认为它应该看到的地方,但是,下面是我的walk_文件函数:

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(文件名)时,我得到:

我当然需要一些指导。 多谢各位


因此,对于其他有类似问题的人: 将代码更改为以下格式:

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

您需要使用
os.path.join(文件路径,文件名)
而不仅仅是
文件名

否则,操作系统将查找当前目录中的文件,而不是
文件路径


(为什么
filenames
指单个文件名时是复数?

filenames指的是所有以warc.gz结尾的文件,因此,我希望不止一个文件。我将试试你的方法
warc.load(os.path.join(file_path, filenames))