Python Tarfile创建xz文件

Python Tarfile创建xz文件,python,compression,tarfile,Python,Compression,Tarfile,我注意到tarfile没有w:xz选项或类似的东西,有没有办法创建一个xz文件呢?我用python编写了这段代码 dir=tkFileDialog.askdirectory(initialdir="/home/david") if x.get()=="gz": tar = tarfile.open(dir+".tar.gz", "w:gz") tar for i in range(lbox.size()):

我注意到tarfile没有w:xz选项或类似的东西,有没有办法创建一个xz文件呢?我用python编写了这段代码

dir=tkFileDialog.askdirectory(initialdir="/home/david")
        if x.get()=="gz":
            tar = tarfile.open(dir+".tar.gz", "w:gz")
            tar
            for i in range(lbox.size()):
                tar.add(e1.get()+"/"+lbox.get(i),arcname=lbox.get(i))
            tar.close()
        if x.get()=="bz":
            tar = tarfile.open(dir+".tar.gz", "w:bz2")
            tar
            for i in range(lbox.size()):
                tar.add(e1.get()+"/"+lbox.get(i),arcname=lbox.get(i))
            tar.close()
        if x.get()=="xz":
            tar = tarfile.open(dir+".tar.gz", "w:gz")
            tar
            for i in range(lbox.size()):
                tar.add(e1.get()+"/"+lbox.get(i),arcname=lbox.get(i))
            tar.close()

Python版本3.3及更高版本具有您正在搜索的选项

“w:xz”-为lzma压缩写入打开

对于低于3.3的版本,您可以尝试以下方法

  • 假设您在代码的前面为inputFilename和outputFilename赋值
  • 请注意,在执行缩进代码后,使用with关键字会自动关闭文件
示例代码:

import lzma 

# open input file as binary and read input data
with open(inputFilename, 'rb') as iFile:
    iData = iFile.read()

# compress data
oData = lzma.compress(iData)

# open output file as binary and write compressed data
with open(outputFilename, 'wb') as oFile:
    oFile.write(oData)
我搜索了其他答案,发现一个条目提到了将lzma导入Python2.7的问题。此条目中提供了一种变通方法,您可以遵循


这是链接-

我已经尝试过lzma模块,但是python不稳定关闭,知道为什么吗?,而且w:xz不工作,我想这应该是我的python版本的问题……您没有写入并关闭文件