使用从python调用的Line line命令从.7z存档中提取单个文件

时间:2019-05-06 23:42:33

标签: python-3.x subprocess 7zip

这是我的第一篇文章,所以在此先感谢您提供的毫无疑问的帮助。

我正在运行需要.tif文件作为输入的python脚本。这些文件当前存储为.7z。我的硬盘驱动器上没有足够的空间来一次解压缩所有文件。因此,我想从.7z内部打开一个文件,运行python脚本,删除.tif,然后循环循环。但是,我似乎无法使解压缩仅适用于单个文件。要么根本不起作用,要么提取整个存档。

###Get a list of all the files in the archive
archive7z = path+file1

p = Popen(['7z', 'l', archive7z, '>> list.txt'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
output, err = p.communicate(b"input data that is passed to subprocess' stdin")
rc = p.returncode
data = pd.read_fwf('/home/user/list.txt', skiprows= 18, sep='\s+')
my_list = data["Name"].values
ml= my_list.tolist()

#loop through list of files de-compressing one at a time
for item in ml:
    if item.endswith('.tif'):
        unzipper = item
        os.system('/home/ecf31/p7zip/7z e' + ' ' + '-i@'+unzipper + '_' archive7z)
    rest of script doing stuff with the tiff
    os.remove(.tif)
    #on to the next file


0 个答案:

没有答案