【问题标题】:Error: iterator should return strings, not bytes (did you open the file in text mode?) when converting csv from text错误:从文本转换 csv 时,迭代器应返回字符串,而不是字节(您是否以文本模式打开文件?)
【发布时间】:2018-01-08 18:53:45
【问题描述】:

我试图运行这段代码:

txt_file = r"Fun.txt"
in_txt = csv.reader(open(txt_file, "rb"), delimiter = '\t')
csv_file = r"NewProcessedDoc.csv"
with open(csv_file, 'w', newline ='') as csvfile:
    swriter = csv.writer(csvfile, delimiter = ' ')
    swriter.writerow(in_txt)
print('done! Check NewProcessedDoc.csv file')

但有一个错误:

swriter.writerow(in_txt)

Error: iterator should return strings, not bytes (did you open the file in text mode?)

有人可以帮忙吗? 谢谢!

【问题讨论】:

  • 你注意到你在"rb"打开你in_txt是二进制模式吗?
  • 正如@MoinuddinQuadri 所说,您的错误在于阅读模式。将其更改为in_txt = csv.reader(open(txt_file, "r"), delimiter = '\t')
  • 非常感谢,它是二进制模式,通过在普通模式下读取,我得到了 csv 文件。

标签: python


【解决方案1】:
  • 以文本模式打开文件:...open(txt_file, "rb")
  • 使用.writerows() 方法而不是.writerow(): swriter.writerows(in_txt)

【讨论】:

  • 改成 open(txt_file, "r") 问题就解决了!谢谢
猜你喜欢
  • 2018-03-24
  • 2020-05-06
  • 1970-01-01
  • 2016-04-07
  • 2021-03-21
  • 2020-12-17
  • 2023-01-22
  • 2013-09-24
相关资源
最近更新 更多