假设zip文件中包括3个csv格式的文件A.CSV,B.CSV,C.CSV,压缩后的文件为"D:/ABC.ZIP"
import csv
with ZipFile("D:/ABC.zip") as zf:
cf=zf.namelist()[0]
print(zf.open(cf))
reader=csv.reader(zf.open(cf))
for line in reader:
print(line)
运行出错,为什么?应该如何改?
。。。
zfile = ZipFile(filehandle)
data = StringIO(zfile.read(zfile.namelist()[0]))
。。。
运行提示:
data = StringIO(zfile.read(zfile.namelist()[0]))
TypeError: initial_value must be str or None, not bytes
我的可以执行通过呢,你把你的代码贴出来看看
追问你导入的包错了,
不是from io import StringIO
是from StringIO import StringIO
我用的python3.5,from StringIO import StringIO这些都改了,2.7估计是可以运行的,您可以试试3.5
追答好吧,2.7的是可以,我看了下python3 io包里的StringIO,你需要使用StringIO模块里的getvalue()方法,不要使用bytesio。
csv.reader(data.getvalue())
用完了文件请记得关闭