如何将 for 循环输出写入 csv 文件?

Posted

技术标签:

【中文标题】如何将 for 循环输出写入 csv 文件?【英文标题】:How to wrtie the for loop out put to a csv file? 【发布时间】:2020-08-08 12:24:15 【问题描述】:

我有一个function,它返回一个list ..

def give_list(number, type, index): 
        list_ = []
        do something 
    return list_

这个函数的输出格式如下;

['Training/1.png', 3450, 3865, 1517, 1789, 'GOOD']

现在我使用 for 循环来获取更多类似上面的列表并写入 .csv 文件..

for key, value in dic_.items():
    list_ = give_list(key, "CC", 2)
    df = pd.DataFrame(list_)
    df.to_csv('/path/to/write/testFile.csv', sep=',') 

例如我的循环生成以下输出;

['Training/1.png', 1255, 4556, 1455, 1789, 'GOOD']
['Training/2.png', 4555, 2899, 6989, 1586, 'BAD']
['Training/3.png', 4744, 2478, 9862, 1755, 'BAD']
['Training/4.png', 3450, 6989, 2455, 3866, 'GOOD']

我在 for 循环中的 df.to_csv('/path/to/write/testFile.csv', sep=',') 并不能帮助我将输出写入 .csv 文件中。我怎样才能做到这一点? 我需要在.csv 文件中看到这样的输出;

'Training/1.png', 1255, 4556, 1455, 1789, 'GOOD'
'Training/2.png', 4555, 2899, 6989, 1586, 'BAD'
'Training/3.png', 4744, 2478, 9862, 1755, 'BAD'
'Training/4.png', 3450, 6989, 2455, 3866, 'GOOD'

【问题讨论】:

你为什么不直接做pd.DataFrame(dict_).to_csv('/path/to/file/) 【参考方案1】:

试试这个:

import csv 
payload = [give_list(key, "CC", 2) for key in dic_] # create list of lists(rows) payload
with open('/path/to/write/testFile.csv', "w", newline="") as f:
    writer = csv.writer(f)
    writer.writerows(payload)

【讨论】:

以上是关于如何将 for 循环输出写入 csv 文件?的主要内容,如果未能解决你的问题,请参考以下文章

将for循环的输出写入python中的csv

如何在 for 循环中将结果写入多个 CSV 文件

如何在通过 Pandas 在 csv 中写入多个 for 循环的数据时在单个单元格中附加数据?

Python - 写入 CSV 文件和 for 循环

如何将 CSV 输出写入标准输出?

如何在同一循环中“从 .csv 读取并写入 excel”