python写入csv文件

python写入csv文件,python,csv,Python,Csv,我是python的初学者。我如何修改下面的代码,将列表写入csv文件,其中包含两列输出,如下所示 1 1 2 1 3 1 4 1 5 1 现在,输出如下 (1, 1) (2, 1) (3, 1) (4, 1) (5, 1) list = [(1,1),(2,1),(3,1),(4,1),(5,1)] with open(test.csv, 'wb') as testfile: csv_writer = csv.writer(testfile) for i in list:

我是python的初学者。我如何修改下面的代码,将列表写入csv文件,其中包含两列输出,如下所示

1 1
2 1
3 1
4 1
5 1
现在,输出如下

(1, 1)
(2, 1)
(3, 1)
(4, 1)
(5, 1)


list = [(1,1),(2,1),(3,1),(4,1),(5,1)]
with open(test.csv, 'wb') as testfile:
    csv_writer = csv.writer(testfile)
    for i in list:
        csv_writer.writerow([i])

非常感谢您的帮助。

您正在将元组写入文件,而不是将元组的每个元素写入文件。试试下面这个。如果这给了你一个错误,请告诉我

list = [(1,1),(2,1),(3,1),(4,1),(5,1)]
with open(test.csv, 'wb') as testfile:
    csv_writer = csv.writer(testfile)
    for i in list:
        csv_writer.writerow(i[0] + ' ' + i[1])

您的列表由对组成,只需对其进行迭代并将对传递给字符串模板进行格式化:

import csv
list = [(1,1),(2,1),(3,1),(4,1),(5,1)]
with open('test.csv', 'wb') as testfile:
    csv_writer = csv.writer(testfile)
    for pair in list:
        csv_writer.writerow('%d %d' % pair)

csv.writer方法采用iterable。i变量已经是一个元组,因此不需要将其列为列表。通过将i包含在[]中,您将其转换为元组列表:[(1,2)]。然后csv.writer将列表拆分为(1,2)元组,用于行中的第一项

假设您希望为分隔符(而不是逗号)留出一个空格,则需要执行以下操作:1)在对csv.writer的调用中添加分隔符参数,2)去掉括号

此外,您可能希望将打开文件的方式更改为“w”。CSV文件应该是纯文本,所以您可能不想将其作为二进制文件编写

下面是我将如何更改代码

list = [(1,1),(2,1),(3,1),(4,1),(5,1)]
with open('test.csv', 'w') as testfile:
    csv_writer = csv.writer(testfile, delimiter=' ')
    for i in list:
        csv_writer.writerow(i)

可能重复的
csv\u writer.writerow(i)
将去掉括号,但逗号仍然存在。。。够近了吗?csv_writer.writerow(str(i[0])+“”+str(i[1])@user1753919谢谢!这正是我要找的。@Kevin你的答案也行。谢谢使用csv_writer.writerow(i[0]+''+i[1]),我得到了这个错误。TypeError:只能将tuple(而不是“str”)连接到tupleI,我认为user1753919的解决方案效果最好。我忘了您必须将类型更改为字符串,所以str(I[0])+“”+str(I[1]);这会给你一个错误吗?而且,我认为Apero的解决方案会起作用。您可以将字符串的%d改为%s,而不是十进制整数。str(i[0])+“”+str(i[1])和csv_writer.writerow(i)都可以工作@Apero的解决方案也可以使用%d或%s,这可能是因为我正在使用的数据。谢谢你的帮助!非常感谢您的详细解释!虽然这个代码片段是受欢迎的,并可能提供一些帮助,但它将是如何以及为什么解决这个问题。记住,你是在将来回答读者的问题,而不仅仅是现在提问的人!请在回答中添加解释,并说明适用的限制和假设。
list = [(1,1),(2,1),(3,1),(4,1),(5,1)]
with open('test.csv', 'w') as testfile:
    csv_writer = csv.writer(testfile, delimiter=' ')
    for i in list:
        csv_writer.writerow(i)