我收到以下错误...。

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


通常在口号“ it's easier to ask forgiveness than permission”中进行总结。

关于python - 强制转换为Unicode:需要字符串或缓冲区,找到了TarFile,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9774434/

10-12 16:50