tar.addfile(tarinfo)在Python2.7中运行良好,但在Python3中并不完全运行。错误应为类似字节的对象,找到str

tar.addfile(tarinfo)在Python2.7中运行良好,但在Python3中并不完全运行。错误应为类似字节的对象,找到str,python,typeerror,tarfile,Python,Typeerror,Tarfile,当我在tarfiles(文件目录等)上使用Python2.7运行这段代码时,它工作得非常好,但是在相同的tarfiles上使用Python3运行的相同代码工作得并不完全好。python 3在if和elif上添加了一些tar文件,但在else上它的给定类型错误:序列项7:需要一个类似字节的对象,str找到了。加上Python3没有考虑将某些目录作为目录,因此else正在执行not elif tarinfo = tar.gettarinfo(name, arcname) if fltr: t

当我在tarfiles(文件目录等)上使用Python2.7运行这段代码时,它工作得非常好,但是在相同的tarfiles上使用Python3运行的相同代码工作得并不完全好。python 3在ifelif上添加了一些tar文件,但在else上它的给定类型错误:序列项7:需要一个类似字节的对象,str找到了。加上Python3没有考虑将某些目录作为目录,因此else正在执行not elif

tarinfo = tar.gettarinfo(name, arcname)
if fltr:
    tarinfo = fltr(tarinfo)
if tarinfo.isreg():
    with open(name, "rb") as f:
        tar.addfile(tarinfo, f)
elif tarinfo.isdir():
    if tarinfo.name != "." or sys.version_info >= (2,7): # workaround for Python v2.6
        tar.addfile(tarinfo)

else:
    tar.addfile(tarinfo)