【问题标题】:python argument 1 must have a write methodpython参数1必须有write方法
【发布时间】:2015-09-25 19:02:24
【问题描述】:

您好,我正在尝试保存已读取的已修改 csv 文件。见代码。

import csv

with open("Bang.csv", 'rt') as f:
    data = f.read()
    new_data = data.replace('"', '')

    for row in csv.reader(new_data.splitlines(), 
                          delimiter=' ',
                          skipinitialspace=True):
        pa = (','.join(row))
        wr = csv.writer("pa", delimiter=',')
        wr.writerow("pa")

我可以打印 Data 和 pa 但是当我运行时出现上述错误。我错过了什么。谢谢

【问题讨论】:

  • 哦,你的意思是在帖子标题中
  • csv.writerfile 对象作为其第一个参数
  • 还要注意 writerow() 方法采用列值的列表或元组。

标签: python string csv export-to-csv


【解决方案1】:

manual中提到,csv.writer的第一个参数必须是类文件对象。

假设你想写入标准输出(在屏幕上打印),你可以像这样修改你的代码:

#pa = (','.join(row))  # you don't need to join row manually
wr = csv.writer(sys.stdout, delimiter=',')
wr.writerow(row)

【讨论】:

  • 不起作用,用“,”分隔pa的所有字符
  • @MichalK 哦,我的错,pa 是字符串对象而不是迭代器(列表)。实际上,您不需要手动加入row,只需使用wr.writerow(row)。更新了我的答案。
【解决方案2】:

我真的不知道,但我认为传递给 csv.writer( ) 函数的第一个参数应该是文件处理程序而不是字符串变量。

【讨论】:

    猜你喜欢
    • 2017-09-21
    • 2021-02-02
    • 2017-03-03
    • 2019-03-15
    • 2013-09-15
    • 2017-05-13
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    相关资源
    最近更新 更多