繁体   English   中英

强制转换为Unicode:需要字符串或缓冲区,TarFile找到

[英]coercing to Unicode: need string or buffer, TarFile found

我收到以下错误....

Traceback (most recent call last):
  File "deploycommerce.py", line 56, in <module>
    if tarfile.is_tarfile(optfile):
  File "/usr/lib/python2.7/tarfile.py", line 2587, in is_tarfile
    t = open(name)
  File "/usr/lib/python2.7/tarfile.py", line 1658, in open
    return func(name, "r", fileobj, **kwargs)
  File "/usr/lib/python2.7/tarfile.py", line 1720, in gzopen
    fileobj = bltn_open(name, mode + "b")
TypeError: coercing to Unicode: need string or buffer, TarFile found

当我试着去玩下面的...

optfile = tarfile.open(opt_tar_input,"r:gz")
# ERROR THROWN IN FOLLOWING...
if tarfile.is_tarfile(optfile):
    # extract all contents
    test =""

多谢你们

tarfile.is_tarfile需要一个文件,而不是文件对象的名称

如果您已成功调用tarfile.open则路径指向tarfile。

请注意,通常的Python编码风格是

try:
    optfile = tarfile.open(...)
except tarfile.ReadError:
    # not a tarfile

这通常用“ 比宽恕更容易请求宽恕 ”的口号来概括。

tarfile.is_tarfile采用文件名,而不是TarFile对象。 无论如何,检查是多余的 - 如果它不是tar文件, tarfile.open会引发异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM