【问题标题】:How to loop multiple data to create multiple csv file如何循环多个数据以创建多个csv文件
【发布时间】:2021-07-17 23:15:24
【问题描述】:

大家好,我需要循环这 3 个示例数据:

data_1 = [[1,2,3],[1,2,3]]
data_2 = [[1,2,3],[1,2,3]]
data_3 = [[1,2,3],[1,2,3]]

这样它们都会被转换成csv文件,我不会重复这个代码3次。

csvfile = open("data_1", "w", newline="")
csvwriter = csv.writer(csvfile, delimiter=",")

for i in data_1:
   csv_writer.writerow(i)
csvfile.close()

但我不知道该怎么做。请帮忙谢谢!

这是完整的代码:

Import csv

data_1 = [[1,2,3],[1,2,3]]
data_2 = [[1,2,3],[1,2,3]]
data_3 = [[1,2,3],[1,2,3]]

csvfile = open("data_1", "w", newline="")
csvwriter = csv.writer(csvfile, delimiter=",")

for i in data_1:
   csv_writer.writerow(i)
csvfile.close()

【问题讨论】:

    标签: python csv for-loop


    【解决方案1】:

    一种(多种)方法是使用字典并遍历它,为您的每组数据生成一个文件。

    datasets = dict(data_1=data_1, data_2=data_2, data_3=data_3)
    for name, data in datasets.items():
        csvfile = open(name, "w", newline="")
        csvwriter = csv.writer(csvfile, delimiter=",")
        for i in data:
           csvwriter.writerow(i)
        csvfile.close()    
    

    (我没有尝试您的 csvwriter 代码并假设它已经在处理一个数据块。)

    【讨论】:

      【解决方案2】:

      执行此操作的一种方法(多种方法)是定义一个写入 csv 的函数,然后使用您想要的任何数据调用该函数。

      def write_to_csv(data, filename):
          with open(filename, "w", newline="") as csvfile:
              with csv.writer(csvfile, delimiter=",") as csvwriter:
                  for row in data:
                      csvwriter.writerow(row)
      

      然后,你可以像这样调用这个函数:

      write_to_csv(data_1, "data_1.csv")
      write_to_csv(data_2, "data_2.csv")
      write_to_csv(data_3, "data_3.csv")
      

      如果您有一大堆 data_* 变量,您应该阅读 How do I create a variable number of variables 以更好地处理所有这些 data_* 变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-18
        • 1970-01-01
        • 2019-10-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多