【问题标题】:Python 2.7 CSV Global Name 'r' not definedPython 2.7 CSV 全局名称“r”未定义
【发布时间】:2015-08-11 13:33:21
【问题描述】:

尝试使用以下方法将简单的一行数据写入 CSV 文件。

 b = open ('team.csv','r')
 r.csv.writer(b)

 data = [Team_Name, Team_Suburb, Team_PH, Team_EF, Team_MD, Team_CSR, Team_PS]
 r.writerow(data)
 b.close()

返回以下错误消息。 未定义全局名称“r”。运行 Python 2.7。

【问题讨论】:

  • 你在哪里定义r ;) ?
  • r.csv.writer(b) 应该是 r = csv.writer(b) ,不是吗?另外,您不是以读取模式打开文件吗?
  • 您可能还想在列标题['Team_Name', 'Team_Suburb', 'Team_PH', 'Team_EF', 'Team_MD', 'Team_CSR', 'Team_PS'] 周围加上引号,除非您之前已定义它们。

标签: python python-2.7 csv


【解决方案1】:

我认为您想将数据写入 csv。 要写入数据,您应该打开写入模式。

import csv
with open('checkout.csv', 'wb') as csvfile:
    writer = csv.writer(csvfile)
    data = [Team_Name, Team_Suburb, Team_PH, Team_EF, Team_MD, Team_CSR, Team_PS]
    writer.writerow(data)

你应该为 csv 文件而不是 r 设置 writer。 r 未声明..

【讨论】:

  • 在 open() 中,您不必编写 close()。检查这个effbot.org/zone/python-with-statement.htm
  • 工作正常,但会删除前一行数据
  • 哦,我的错误..你以前的数据是指'csv中的数据'是吗?然后您可以在 open() 中将 'wb' 更改为 'a'。 w 是明确的,一个手段添加
  • 删除它是因为你在"wb"中打开它;这将在您每次打开文件时截断文件。
  • WorkLikeBear:我认为 OP 希望将行附加到现有文件。
【解决方案2】:
with open('team.csv', 'a') as csvfile:
    writer = csv.writer(csvfile)
    data = [Team_Name, Team_Suburb, etc, etc, etc]
    writer.writerow(data)

【讨论】:

    猜你喜欢
    • 2015-04-16
    • 1970-01-01
    • 2017-02-03
    • 2013-08-23
    • 2013-11-12
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多