Python 3.x 将文件从tgz提取到tar,并从tar提取到txt Databricks Python3 Unix/Linux

Python 3.x 将文件从tgz提取到tar,并从tar提取到txt Databricks Python3 Unix/Linux,python-3.x,linux,shell,apache-spark,databricks,Python 3.x,Linux,Shell,Apache Spark,Databricks,我有很多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() 但即使它没有给出任何错

我有很多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没有太多经验,所以可能有一个愚蠢的错误,因为文件和目录肯定在那里


我做了很多研究,但没有一个与我的用例相匹配。非常感谢您的帮助。我在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部分有一个解决方案,我很想知道。

您正在开发社区版吗?您使用的是什么DBR版本?我正在开发标准版,DBR是7.4
import tarfile
tar = tarfile.open('/dbfs/mnt/mountingPoint/InputFolder/filename.tgz', 'r:gz')
tar.extractall('/dbfs/mnt/mountingPoint/OutputFolder/')
tar.close()