我正在尝试从压缩文件中复制所有.txt文件(此文件具有unknown_name_folders):.txt文件位置---> my_path /?unknown_name_folder?/file.txt我想做---> my_path / file。文本
我做了这段代码,但是出现了这个错误:EOFError:压缩文件在到达流结束标记之前结束。任何的想法?
file=my_path+"/"+fil
if file.endswith('.tar.gz'):
tarf = tarfile.open(file, "r:gz")
for info in tarf:
if info.name.endswith('.txt'):
print(info.name)
tar = tarfile.open(file) #extracting
tar.extractall()
tar.close()
code=os.system('cp ' + my_path+'/'+info.name +' '+ file)
如Paulo所述,您在第二次打开tar文件时错过了“ gz”标志。另外,您复制文件的目标是原始的tarball-我假设您希望将其放在单独的目录中(此处为“ targdir”)
您只需要提取一次内容,因此代码变为:
file=my_path+"/"+fil
targdir='dest'
if file.endswith('.tar.gz'):
tarf = tarfile.open(file, "r:gz")
tarf.extractall()
for info in tarf:
if info.name.endswith('.txt'):
print(info.name)
code=os.system('cp ' + info.name +' '+ targdir)
(编辑-您不需要在“ cp”命令中使用“ mypath”-您已将压缩包解压缩到当前目录中,因此“ info.name!”是文件的完整路径)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句