2

我正在尝试使用 pyunpack 解压缩文件,但总是出错。如果我使用 zip 文件,一切正常,但 rar 文件则不行。这是我的代码:

from pyunpack import Archive
Archive('C:/Users/Username/Desktop/teste/Desktop2.rar').extractall('C:/Users/Username/Desktop/teste')

这是我得到的错误:

Traceback (most recent call last):
  File "c:\Python34\lib\site-packages\easyprocess\__init__.py", line 255, in start
    cwd=self.cwd,
  File "c:\Python34\lib\subprocess.py", line 859, in __init__
    restore_signals, start_new_session)
  File "c:\Python34\lib\subprocess.py", line 1112, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system couldn't find the specified file

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Username\Documents\NetBeansProjects\Teste\src\main.py", line 17, in <module>
    Archive('C:/Users/Username/Desktop/teste/Desktop2.rar').extractall('C:/Users/Username/Desktop/teste')
  File "c:\Python34\lib\site-packages\pyunpack\__init__.py", line 81, in extractall
    self.extractall_patool(directory)
  File "c:\Python34\lib\site-packages\pyunpack\__init__.py", line 47, in extractall_patool
    ]).call()
  File "c:\Python34\lib\site-packages\easyprocess\__init__.py", line 223, in call
    self.start().wait(timeout=timeout)
  File "c:\Python34\lib\site-packages\easyprocess\__init__.py", line 260, in start
    raise EasyProcessError(self, 'start error')
easyprocess.EasyProcessError: start error <EasyProcess cmd_param=['patool', 'extract', Path('C:\\Users\\Username\\Desktop\\teste\\Desktop2.rar'), Path('--outdir=C:\\Users\\Username\\Desktop\\teste')] cmd=['patool', 'extract', Path('C:\\Users\\Username\\Desktop\\teste\\Desktop2.rar'), Path('--outdir=C:\\Users\\Username\\Desktop\\teste')] oserror=[WinError 2] The system couldn't find the specified file returncode=None stdout="None" stderr="None" timeout=False>

您对可能出现的问题有任何想法吗?

4

2 回答 2

2

问题可能是您的路径中没有您的 unraring 工具,这意味着它不能从命令行调用(这正是 patool 所做的)。只需将您的 7-zip(或您正在使用的其他任何东西)文件夹放到路径中,就可以了。

于 2016-12-05T05:54:19.957 回答
0

跑步sudo apt install unrar为我解决了这个问题。

于 2021-03-18T11:57:55.737 回答