将文件从 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 部分有解决方案,我很想知道。
我有很多 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 部分有解决方案,我很想知道。