我的代码以前可以打印到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'未定义”。我以前使用过此代码,并且可以正常工作。有什么帮助吗?谢谢!
答案 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