获取解压缩的文件夹名称。tar.gz 文件
Get folder name of unzipped .tar.gz file
我有一个 python 脚本,可以从 .tar.gz
文件中提取所有内容,然后处理提取的文件。
当前提取项目的python代码是:
tar = tarfile.open(input_file)
tar.extractall(output_location)
tar.close()
其中 input file
是 tarball,output_location
是我要将 tarball 解压到的文件夹。
tarball 是通过 tar -czf (output filename) (input folder)
创建的,因此压缩的材料可以保证在一个文件夹中,并且 tarball 中唯一的顶级项目将是那个文件夹。 (输出位置不一定为空。)通常,提取的文件夹名为course
,但理论上可以命名为任何名称.
有没有办法在提取之前或之后获取该顶级文件夹的名称?
否则,我可以重命名该文件夹。有没有一种方法可以提取 tarball 的顶级文件夹 inside 中的所有压缩内容,以便我可以将其放入我自己命名的文件夹中?我可以将所有内容解压缩到一个新文件夹中,然后将所有内容拉下一个层次结构,这将是等效的,但感觉就像用大炮射击小昆虫。
您可以使用 os.listdir。在您的情况下,将返回一个包含单个项目的列表,该项目是您需要的目录的名称。
import os
dir_name = os.listdir(output_folder)[0]
或者像这样,除非你有一个预期的条目,否则它会引发:
dir_name, = os.listdir(output_folder)
编辑
要简单地获取存档中 files/directories 的名称,请使用 tar.getnames()
。如果您知道自己只有一个,请使用 tar.getnames()[0]
.
获取它
我有一个 python 脚本,可以从 .tar.gz
文件中提取所有内容,然后处理提取的文件。
当前提取项目的python代码是:
tar = tarfile.open(input_file)
tar.extractall(output_location)
tar.close()
其中 input file
是 tarball,output_location
是我要将 tarball 解压到的文件夹。
tarball 是通过 tar -czf (output filename) (input folder)
创建的,因此压缩的材料可以保证在一个文件夹中,并且 tarball 中唯一的顶级项目将是那个文件夹。 (输出位置不一定为空。)通常,提取的文件夹名为course
,但理论上可以命名为任何名称.
有没有办法在提取之前或之后获取该顶级文件夹的名称?
否则,我可以重命名该文件夹。有没有一种方法可以提取 tarball 的顶级文件夹 inside 中的所有压缩内容,以便我可以将其放入我自己命名的文件夹中?我可以将所有内容解压缩到一个新文件夹中,然后将所有内容拉下一个层次结构,这将是等效的,但感觉就像用大炮射击小昆虫。
您可以使用 os.listdir。在您的情况下,将返回一个包含单个项目的列表,该项目是您需要的目录的名称。
import os
dir_name = os.listdir(output_folder)[0]
或者像这样,除非你有一个预期的条目,否则它会引发:
dir_name, = os.listdir(output_folder)
编辑
要简单地获取存档中 files/directories 的名称,请使用 tar.getnames()
。如果您知道自己只有一个,请使用 tar.getnames()[0]
.