首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python提取压缩文件(.7z)中的文件名

使用python提取压缩文件(.7z)中的文件名
EN

Stack Overflow用户
提问于 2019-05-01 01:29:28
回答 2查看 551关注 0票数 0

我想知道压缩文件(7zip)中的文件名,而不是解压缩该文件。我如何在python中做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2019-05-01 03:01:48

在Mac或Linux上,你可以使用libarchive。(在windows上,你可以尝试libarchive-c,但我从未尝试过)

这里有一个粗略的示例来帮助您入门,不过我建议您阅读链接

代码语言:javascript
复制
import libarchive.public

with libarchive.public.file_reader('test.7z') as e:
    for entry in e:
         print(e)
票数 1
EN

Stack Overflow用户

发布于 2019-05-01 03:34:01

另一个Linux示例,如果您只是在编写一个快速脚本(不用担心来自不受信任用户的变形文件名),那么您可以始终遵循7z可执行文件(此代码假设您的脚本支持未记录的-ba选项)。

代码语言:javascript
复制
#!/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' )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55926031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档