Python 如何打开tar文件并获取';它在它的一个文件里?
这是我尝试的代码:Python 如何打开tar文件并获取';它在它的一个文件里?,python,tarfile,Python,Tarfile,这是我尝试的代码: import tarfile # Opening zipped tarfile archive t = tarfile.open(r'C:\Users\Luke\Desktop\my data.gz', "r:gz") t.getmembers() #Showing members within tarfile archive 它打印这个: 0x2a9431ea430处的“/.\u SA00000”TarInfo, TarInfo'SA00000'在0x2a9431e
import tarfile
# Opening zipped tarfile archive
t = tarfile.open(r'C:\Users\Luke\Desktop\my data.gz', "r:gz")
t.getmembers() #Showing members within tarfile archive
它打印这个:
0x2a9431ea430处的“/.\u SA00000”TarInfo,
TarInfo'SA00000'在0x2a9431ea5c0,#有更多的成员不想全部展示
我试过:
x = t.extract('SA00000')
print(x)
它打印None
我真的不明白。我在记事本中打开了tar文件,所有数据都在那里
不知道这是否有帮助,但我在windows 10上使用python 3,数据是从MacOS提供给我的。Tar文件只是linux文件分组,没有真正的压缩。tar.gz是相同的东西,但是有压缩。无论您是否有tar或tar.gz文件,您都可以通过在压缩软件中打开该文件(建议使用7zip)来查看内部文件 如果您希望以编程方式完成此操作,我仍然建议您使用7zip,但应使用名为(7-Zip Extra:standalone console version,7z DLL,Far Manager插件)的独立CLI版本 这将为您提供7zip的所有功能,而无需GUI膨胀。您可以从应用程序中调用它;看起来您正在使用python,因此您可能会使用子流程模块。以下是一个例子:
def decompress():
out=subprocess.call("7za.exe e -y -o'OUTPUT_FILE_NAME_1.tar' INPUT_FILENAME_1.tar.gz",stdout=fout,stderr=ferr)
output=fout.read())
errors = ferr.read()
if !errors:
out=subprocess.call("7za.exe x -y -o'OUTPUT_FILE_NAME_2' OUTPUT_FILE_NAME_1.tar ",stdout=fout,stderr=ferr)
output=fout.read())
errors = ferr.read()
您将得到一个名为OUTPUT_file_NAME_2的文件夹或文件,然后您可以像tar/tar.gz文件从未存在一样遍历它。第一个调用解压缩“tarball”,第二个调用提取它
Tar文件只是linux文件分组,没有真正的压缩。tar.gz是相同的东西,但是有压缩。无论您是否有tar或tar.gz文件,您都可以通过在压缩软件中打开该文件(建议使用7zip)来查看内部文件 如果您希望以编程方式完成此操作,我仍然建议您使用7zip,但应使用名为(7-Zip Extra:standalone console version,7z DLL,Far Manager插件)的独立CLI版本 这将为您提供7zip的所有功能,而无需GUI膨胀。您可以从应用程序中调用它;看起来您正在使用python,因此您可能会使用子流程模块。以下是一个例子:
def decompress():
out=subprocess.call("7za.exe e -y -o'OUTPUT_FILE_NAME_1.tar' INPUT_FILENAME_1.tar.gz",stdout=fout,stderr=ferr)
output=fout.read())
errors = ferr.read()
if !errors:
out=subprocess.call("7za.exe x -y -o'OUTPUT_FILE_NAME_2' OUTPUT_FILE_NAME_1.tar ",stdout=fout,stderr=ferr)
output=fout.read())
errors = ferr.read()
您将得到一个名为OUTPUT_file_NAME_2的文件夹或文件,然后您可以像tar/tar.gz文件从未存在一样遍历它。第一个调用解压缩“tarball”,第二个调用提取它
不返回任何内容(默认返回None
),它只是将SA00000
指定的存档内容提取到文件中。您可能需要返回文件对象的。不返回任何内容(默认返回None
),它只将SA00000
指定的存档内容提取到文件中。您可能需要返回文件对象的。