Python 3.x 巨蟒:“;FileNotFoundError";尽管能够打印这样的文件
我正在编写一个Python3脚本,其中代码遍历目录和子目录,以提取所有gzip warc文件。 我还想补充一点,这些文件不在我的主目录中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
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))