我想知道压缩文件(7zip)中的文件名,而不是解压缩该文件。我如何在python中做到这一点?
发布于 2019-05-01 03:01:48
在Mac或Linux上,你可以使用libarchive。(在windows上,你可以尝试libarchive-c,但我从未尝试过)
这里有一个粗略的示例来帮助您入门,不过我建议您阅读链接
import libarchive.public
with libarchive.public.file_reader('test.7z') as e:
for entry in e:
print(e)发布于 2019-05-01 03:34:01
另一个Linux示例,如果您只是在编写一个快速脚本(不用担心来自不受信任用户的变形文件名),那么您可以始终遵循7z可执行文件(此代码假设您的脚本支持未记录的-ba选项)。
#!/usr/bin/python3
# this doesn't work for files with embedded newlines
import subprocess
import sys
pp = subprocess.run(
[ '7z', 'l', '-ba', sys.argv[1] ] ,
stdout = subprocess.PIPE ,
stderr = subprocess.PIPE ,
)
pp.check_returncode()
for line in pp.stdout.split( b'\n' ):
if line:
sys.stdout.buffer.write( line[53:] )
sys.stdout.buffer.write( b'\n' )https://stackoverflow.com/questions/55926031
复制相似问题