【发布时间】:2019-12-05 05:26:22
【问题描述】:
我是 python 新手,刚刚学习 os.walk() 和 tarfile。我正在尝试遍历一个包含文件的文件夹和包含文件的子文件夹,并尝试将它们全部添加到 tar 文件中。我不断收到错误“TypeError:join() 参数必须是 str 或字节,而不是 'list'”
在尝试添加到 tar 文件之前,我尝试只打印内容。给出同样的错误。我可以通过将 str 添加到 os.path.dirname 的参数来解决这个问题,但不确定这样做是否正确。
import tarfile
import os
tnt = tarfile.open("sample.tar.gz", 'w:gz')
dt = os.walk('C:\\users\\cap\\desktop\\test1')
for root, d_names, f_names in dt:
print(os.path.join((root), (f_names))) #error
tnt.add(os.path.join(root, f_names) #error
tnt.close()
print(os.path.join((root), (f_names)))
genericpath._check_arg_types('join', path, *paths)
输出:
TypeError: join() argument must be str or bytes, not 'list''''
【问题讨论】:
标签: python python-3.7