多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
> python3使用tarfile 解压`.tar`文件时报错:file could not be opened successfully ``` Administrator@WIN-6CLR30UNKKF MINGW64 /e/data/ $ ls 05.tar ``` **对/e/data/05.tar进行解压** ``` import tarfile tar = tarfile.TarFile('E:\\data\05.tar') tar.extractall() tar.close() // 执行后,显示报错 (venv) E:\phpstudy\PHPTutorial\WWW\py>python unzip.py Traceback (most recent call last): File "unzip.py", line 84, in <module> un_tar() File "unzip.py", line 17, in un_tar tar = tarfile.open("E:\\data\\_05.tar", "r:*") File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\tarfile.py", line 1580, in open raise ReadError("file could not be opened successfully") tarfile.ReadError: file could not be opened successfully ``` **报错原因** 1. 文件不存在或路径不正确:请确保您指定的文件路径是正确的,并且文件确实存在于该路径中。 2. 文件权限问题:请确保您有足够的权限来读取该文件。您可以尝试使用 sudo 命令以管理员身份运行您的 Python 脚本。 3. 文件格式问题:请确保您的 tar 归档文件是有效的,并且它的格式是 tar 格式。如果您的文件是使用其他压缩格式(如 gzip 或 bzip2)压缩的,请先解压缩该文件,然后再尝试使用 tarfile 模块打开它。 6. 文件损坏:如果您的 tar 归档文件已损坏,则可能无法成功打开。您可以尝试使用其他工具(如 tar 命令)打开该文件,以确定文件是否已损坏。 **解决:** 1. 检查文件类型,发现该文件并不是tar类型,而是7-zip类型文件,因此需要使用7-zip方式进行解压 ``` Administrator@WIN-6CLR30UNKKF MINGW64 /e/data/ $ ls 05.tar Administrator@WIN-6CLR30UNKKF MINGW64 /e/data/ $ file 05.tar 05.tar: 7-zip archive data, version 0.4 ``` 2. Python可以使用py7zr库对7-zip类型文件进行操作,在使用之前,需要先安装py7zr库 ``` pip install brotlicffi pip install bcj-cffi pip install py7zr ``` 3. 实现 ``` import py7zr arch = py7zr.SevenZipFile("E:/data/05.tar", mode="r", password="1234") arch.extractall(path="E:/data") arch.close() ```