这个错误提示可能是由于你的脚本文件或者模块文件命名为了'tarfile.py',导致了循环引用。在你的代码中,你使用了'import tarfile'语句,但是在你的当前目录下,也存在一个名为'tarfile.py'的文件,这会导致Python优先加载当前目录下的'tarfile.py'文件,而不是系统的'tarfile'模块。

为了解决这个问题,你可以尝试以下方法:

  1. 修改脚本文件或模块文件名称: 将你的脚本文件或模块文件改名为其他名称,例如'my_script.py'或'my_module.py'。
  2. 使用绝对路径引用系统模块: 使用'from tarfile import open' 或 'import tarfile' 之后,在代码中使用 'tarfile.open' 引用系统模块,以避免与当前目录下的文件冲突。

例如,你可以使用以下代码片段来压缩文件:

import tarfile
import os

OUTPUT_ROOT_DIRECTORY = 'your_output_directory'
output_filenames = ['file1.txt', 'file2.csv']

with tarfile.open(os.path.join(OUTPUT_ROOT_DIRECTORY, 'submission.tar.gz'), 'w:gz') as tar:
    for output_filename in output_filenames:
        tar.add(os.path.join(OUTPUT_ROOT_DIRECTORY, output_filename), arcname=output_filename)

通过修改文件名称或使用绝对路径,你可以避免循环引用问题并成功使用'tarfile.open'方法压缩文件。

Python 使用 tarfile.open 压缩文件时,出现 'AttributeError: partially initialized module 'tarfile' has no attribute 'open'' 错误

原文地址: https://www.cveoy.top/t/topic/od7I 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录