我收到以下错误....
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 =""
谢谢你们
答案 0 :(得分:4)
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”来概括。
答案 1 :(得分:0)
tarfile.is_tarfile
采用文件名,而不是TarFile
对象。无论如何,检查是多余的 - 如果它不是tar文件,tarfile.open
会引发异常。