PYR-202410 2025-01-31 13:56 采纳率: 82.5%
浏览 8
已结题

py调用7z.exe时密码参数未按预期工作

我尝试使用python调用7z.exe命令行程序:

7z.exe l pw12345678.7z -y "-p12345678"

可是运行时仍输出:

7-Zip 23.01 (x64) : Copyright (c) 1999-2023 Igor Pavlov : 2023-06-20

Scanning the drive for archives:
1 file, 313563842 bytes (300 MiB)

Listing archive: C:\Users\Administrator\Desktop\PYExe\2025项目\ZipReader\icon-pw12345678.7z

 Enter password (will not be echoed):

该如何解决这个问题?

  • 写回答

3条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2025-01-31 14:02
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题解答: 这个问题出现的原因是在调用7z.exe时,密码参数的格式不正确。正确的格式应该是使用双引号将密码包裹起来,例如 `-p"12345678"`,而不是 `-p12345678`。 所以,解决这个问题的方法是修改调用7z.exe的命令行参数,将密码包裹在双引号内。下面是正确的Python代码示例:
    import subprocess
    password = "12345678"
    archive_path = "pw12345678.7z"
    command = f'7z.exe l {archive_path} -y "-p{password}"'
    process = subprocess.Popen(command, stdout=subprocess.PIPE)
    output, error = process.communicate()
    print(output.decode())
    

    通过以上修改后的代码,应该可以成功调用7z.exe并输入密码来查看压缩文件的内容了。如果还有其他问题,请留言继续交流。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月26日
  • 已采纳回答 7月18日
  • 创建了问题 1月31日