【问题标题】:write in a csv file in python and read it using the column name在python中写入一个csv文件并使用列名读取它
【发布时间】:2021-07-06 16:35:41
【问题描述】:

虽然我已经写了这段代码

import csv
    with open('persons.csv', 'w') as csvfile:
        filewriter = csv.writer(csvfile, delimiter=',',quotechar='|')
        filewriter.writerow(['Name', 'Profession'])
        filewriter.writerow(['Derek', 'Software Developer'])
        filewriter.writerow(['Steve', 'Software Developer'])
        filewriter.writerow(['Paul', 'Manager'])

我得到的结果是

['Name', 'Profession']
[]
['Derek', 'Software Developer']
[]
['Steve', 'Software Developer']
[]
['Paul', 'Manager']
[]

它在两者之间留下了一条线。 怎么解决???

还有一件事我想使用它们的列名从 csv 读取数据,即

import csv
with open('persons.csv') as f:
    reader = csv.reader(f)
 
  
    for Name, Profession in reader:
        print(Name, Profession)

--当我运行此代码时,它显示错误..

 for Name, Profession in reader:
ValueError: not enough values to unpack (expected 2, got 0)

请建议它如何工作

【问题讨论】:

  • 我检查了你的代码,我的 csv 文件是正确的
  • 对我来说也可以。它创建的 csv 是正确的。它看起来不像您发布的内容。对我来说,输出看起来像是在列表推导中使用 print 的结果。
  • 请不要通过编辑旧问题来提出新问题。如果您有关于另存为 jpeg 的新问题,请将其作为新问题发布。否则,现有的 csv 答案对未来的读者没有任何意义。
  • @tdy 无法提出新问题
  • 我明白了,我猜是因为以前的反对票。我刚刚对你的两个帖子都投了赞成票,但不确定这是否足以解除限制。

标签: python csv


【解决方案1】:

csv.writer 默认将 \r\n 写入文件。如果您正在运行 Windows,请使用以下命令打开文件

with open('persons.csv', 'w', newline='') as csvfile:

一旦你有了这个,空行就会消失

第二个问题是由于第一个问题。由于您有空行,因此 reader 有 0 个项目用于这些行,因此是例外。

【讨论】:

    猜你喜欢
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 2017-01-09
    • 1970-01-01
    • 2015-04-09
    • 2019-01-11
    • 2021-12-05
    相关资源
    最近更新 更多