将文件从 tgz 提取到 tar,从 tar 提取到 txt Databricks Python3 Unix/Linux

Extract files from tgz to tar and from tar to txt Databricks Python3 Unix/Linux

我有很多 tgz 格式的文件,其中包含 tar 个文件,tar 个文件本身包含 txt 文件。 我想在 Databricks 中使用 python(3.x,如果可能),首先将它们提取到 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 没有太多经验所以可能那里有一个愚蠢的错误,因为文件和目录肯定在那里。

我做了很多研究,但 none 其中符合我的用例。非常感谢任何帮助,提前致谢。

我在 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 部分有解决方案,我很想知道。