当前位置 : 首页 » 博文聚焦 » 正文

初学Python常见的错误

分类 : 博文聚焦 | 发布时间 : 2013-01-24 14:16:00 | 浏览 : 0

1. TypeError: coercing to Unicode: need string or buffer, type found

Traceback (most recent call last):
  File "unzip.py", line 20, in <module>
    tar = tarfile.open(file)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tarfile.py", line 1658, in open
    return func(name, "r", fileobj, **kwargs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tarfile.py", line 1720, in gzopen
    fileobj = bltn_open(name, mode + "b")
TypeError: coercing to Unicode: need string or buffer, type found

代码为:

#扫描当前目前下所有的gz文件
currDir = os.getcwd()
files = os.listdir(currDir)
dstDir = "201301_09"
if not os.path.exists(dstDir):
    os.mkdir(dstDir)
for fileName in files:
    if os.path.isfile(fileName) and tarfile.is_tarfile(fileName):
        print fileName
        try:
            tar = tarfile.open(file)#这里应该是fileName而不是file
            names = tar.getnames()
            for name in names:
                tar.extract(name,path=dstDir)
            tar.close()
        except tarfile.ReadError:
            print "not a tarFile"
            pass

 

相关阅读: