我正在使用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))
答案 0 :(得分:1)
您需要使用os.path.join(file_path, filenames)
而非filenames
。
否则操作系统将在当前目录中查找该文件,而不是file_path
。
(为什么filenames
复数引用单个文件名?)