【问题标题】:CSV.writer each set entry on a new lineCSV.writer 将每个集合条目放在一个新行上
【发布时间】:2019-09-17 16:02:31
【问题描述】:

环境: Windows 上的 Python 3.7
目标: 将一个集合写入 .csv 文件,每个集合条目位于一个新行。
问题:每个集合条目不在新行中...当我在 Excel 中打开 CSV 文件时,每个集合条目都位于单独的列中,而不是单独的行中。
问题:我需要做什么才能让每个集合条目都写在新行上?

import csv
test_set = {'http://www.apple.com', 'http://www.amazon.com', 'http://www.microsoft.com', 'https://www.ibm.com'}
with open('output.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows([test_set])
    f.close()

【问题讨论】:

    标签: python python-3.x csv


    【解决方案1】:

    您向writer.writerows() 传递了一个包含单个元素的列表,因此它写入了一行。

    您需要将您的集合转换为一系列行;每行一个包含行内容的列表。您可以使用生成器表达式来生成行:

    writer.writerows([value] for value in test_set)
    

    但是,您实际上并没有在此处生成 CSV。使用单个列,您也可以将设置的内容直接写入文件,中间有换行符。 print() 函数可以用于此任务:

    with open('output.csv', 'w') as f:
        print(*test_set, sep='\n', file=f)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      • 1970-01-01
      相关资源
      最近更新 更多