如何在Python中将输出写入多列CSV?

3

我无法想出如何将程序输出写入CSV文件中的列。

目前,我正在进行以下操作:

print(var1, file=outputfile)

但是它只能写入文件,而不能指定它在哪一列。我打算使用csv模块,但我不太确定如何使每个变量将自己写入Excel文件中的单个列。例如:

将Var1写入Excel的A列。

将Var2写入Excel的B列...

非常感谢您提供任何指导和建议。


列应该如何命名? - Andriy Ivaneyko
3个回答

10

你需要决定要输出哪些列。正如你所提到的,你希望var1和var2分别写入不同的列中。你可以使用以下代码实现:

import csv

with open('names.csv', 'w') as csvfile:
    fieldnames = ['var1', 'var2']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerow({'var1': var1, 'var2': var2})

这将把 var1 和 var2 的值分别写入名为 var1 和 var2 的不同列中。


非常感谢。直截了当地让我开始了。你知道哪里可以学习更多关于CSV模块的知识吗?文档对我来说有些具有挑战性。 - user1118051
有一个非常好的资源叫做Pymotw(Python模块之周),它解释了许多模块的用法。这里是CSV模块的链接:https://pymotw.com/2/csv/. - deborah-digges

0

在 @CalebJ 的答案基础上,更简短的版本可以是这样的:

list_1 = ["Hello", "World", "Monty", "Python"]
list_2 = [1, 2, 3, 4]


file = open("columns.txt", "w")
writer = csv.writer(file)

for w in range(4):
iterate through integers 0-3

writer.writerow([list_1[w], list_2[w]])

file.close()

0
创建一个包含行的列表,然后使用csv的writerows函数逐行写入它们。如果您的列有几个条目,即键具有多个值,则此方法非常有用。

import csv
list_column=["column_A","column_B"]
column_A= ["var_1"]
column_B= ["var_2"]
list_row[]

#to create a list full of rows as the writerow function reads data row-wise
for i in range(len(column_A)):
    list_temp=[column_A[i],column_B[i]]
    list_row.append(list_temp)


with open (your_csv_file_name, 'w', newline="") as entry:
    writer=csv.writer(entry)
    writer.writerow(list_column)
    writer.writerows(list_row)

    entry.close()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接