尝试打印CSV文件时出现新的Python NameError

时间:2019-07-01 16:00:53

标签: python export-to-csv nameerror

我的代码以前可以打印到csv文件,但是最近开始产生NameError。我看过很多其他类似的问题,但无法弄清楚如何解决。我对Python比较陌生。

data = glob.glob('filename****')
filenames = data

for filename in filenames:
  root = lxml.etree.parse(filename)
  for stitle in root.xpath("//fileDesc/titleStmt/title[1]"):
      stitle = stitle.xpath("string()")

  for ltitle in root.xpath("//fileDesc/titleStmt/title[2]"):
      ltitle = ltitle.xpath("string()")

  for date in root.xpath("//fileDesc/sourceDesc/bibl/msDesc/additional/adminInfo/note"):
      date = date.xpath("string()")

  for location in root.xpath("//fileDesc/sourceDesc/bibl/pubPlace"):
      location = location.xpath("string()")

  with open('file.csv', 'a') as csv_file:
      writer = csv.writer(csv_file)
      writer.writerow([filename, stitle, ltitle, date, location])

我收到的特定错误是“ NameError:名称'date'未定义”。我以前使用过此代码,并且可以正常工作。有什么帮助吗?谢谢!

2 个答案:

答案 0 :(得分:1)

欢迎使用StackOverflow。

我猜您是第一次使用以下值运行程序 root.xpath("//fileDesc/sourceDesc/bibl/msDesc/additional/adminInfo/note")为空。

在这种情况下,名称date从未绑定,因此,当您尝试执行最后一条语句时

writer.writerow([filename, stitle, ltitle, date, location])

您看到一个NameError。本次互动会议将演示:

>>> for date in []:
...   pass
...
>>> date
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'date' is not defined

答案 1 :(得分:0)

这就是你所面对的。
由于7不是gt 9-> a未定义。 在您的情况下,找不到“日期”。

if 7 > 9:
    a = 11
print(a)

输出

NameError: name 'a' is not defined