【问题标题】:saving python variable to csv将python变量保存到csv
【发布时间】:2022-06-15 21:40:07
【问题描述】:

我在这个 python 错误上遇到了麻烦。 我想将更改的变量保存到 csv 文件中,但是当代码使用不同的变量再次运行时,它会覆盖前一个变量。我没有预先确定变量,它们是在代码运行时生成的,所以每次循环将循环程序时都会传递不同的电子邮件。

这是我的代码:

import csv

def hello(hme):
        header = ['email']
        data = [hme]


        with open('countries.csv', 'w', encoding='UTF8', newline='') as f:
                writer = csv.writer(f)


                writer.writerow(header)
                writer.writerows(data)

hello(["test@icloud.com"])

谢谢!

【问题讨论】:

  • 可能更容易使用pandas数据框,然后通过pandas.DataFrame.to_csv转换成csv
  • 如果您不想覆盖现有值,请以追加模式打开文件
  • @VRComp 引入pandas 依赖项对于这个简单的任务来说似乎有点矫枉过正......

标签: python csv variables


【解决方案1】:

您应该以追加方式打开文件,而不是写入: 'a' 而不是 'w'

import csv

def hello(hme):
        header = ['email']
        data = [hme]


        with open('countries.csv', 'a', encoding='UTF8', newline='') as f:
                writer = csv.writer(f)


                writer.writerow(header)
                writer.writerows(data)

hello(["test@icloud.com"])

【讨论】:

    【解决方案2】:

    只需将“w”替换为“a”,其中“w”写入文件(覆盖),而“a”会在您写入文件时附加文件。

    with open('countries.csv', 'a', encoding='UTF8', newline='') as f:
    

    对于标题“电子邮件”,只需在添加电子邮件循环之前编写它,不要重复它

    【讨论】:

      猜你喜欢
      • 2019-12-25
      • 2015-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 1970-01-01
      相关资源
      最近更新 更多