我有很多tgz格式的文件包含tar文件,而tar文件本身包含txt文件。我想先将它们提取到tar格式,然后再提取到txt格式(或者如果可能的话,立即提取到txt格式,那就更好了)。
我试过了
tar = tarfile.open('/dbfs/mnt/mountingPoint/InputFolder/filename.tgz', 'r:gz')
tar.extractall()
tar.close()
但是即使它没有给出任何错误,我也没有得到任何文件。我浏览了所有关于这个话题的帖子,但都没有帮助。
我也试过:
%sh find $/dbfs/mnt/mountingPoint/InputFolder/ -name *.tar.gz -exec tar -xvzf {} -C $/dbfs/mnt/mountingPoint/OututFolder/ ;
,得到以下错误:
find: ‘$/dbfs/mnt/mountingPoint/InputFolder/’: No such file or directory
我对Unix/Linux没有太多的经验,所以这里可能有一个愚蠢的错误,因为文件和目录肯定在那里。
我做了很多研究,但是没有一个符合我的用例。如有任何帮助,我将不胜感激,提前感谢。
我在tar.extractall()中添加了一个输出文件夹,现在它可以工作了
import tarfile
tar = tarfile.open('/dbfs/mnt/mountingPoint/InputFolder/filename.tgz', 'r:gz')
tar.extractall('/dbfs/mnt/mountingPoint/OutputFolder/')
tar.close()
如果您想一个一个地提取文件,另一个解决方案是:
for member in tar.getmembers():
extracted_f = tar.extract(member, '/dbfs/mnt/mountingPoint/OutputFolder/')
但是,如果有人对shell部分有解决方案,我很想知道。