下面是我的代码,执行时,没有创建文本文件,没有从XML文件中读取任何内容,此外,没有错误出现,基本上什么也没发生。任何建议??
import xml.etree.ElementTree
def main():
b = xml.etree.ElementTree.parse('books.xml')
persons = b.findall("book")
for element in persons:
author, title, genre, price, publish, description = book_data_from_element(element)
f = open('offload.txt', 'w')
f.write(author, title, genre, price, publish, description)
f.close()
def book_data_from_element(element):
author = element.find("author").text
title = element.find("title").text
genre = element.find("genre").text
price = element.find("price").text
publish = element.find("publish_date").text
description = element.find("description").text
return author, title, genre, price, publish, description
答案 0 :(得分:0)
你不是在调用main方法,最简单的方法是编写
if __name__ == '__main__':
main()
保存文件并从控制台调用,如python your_file.py
您也可以使用with
上下文管理器而不是
f = open('offload.txt', 'w')
f.write(author, title, genre, price, publish, description)
f.close()
答案 1 :(得分:0)
你的脚本运行正常。此特定模块定义了两个函数:main
和book_data_from_element
。它也没有打电话。 Python不像C或Java,其中名称main
是特殊的,因为它是程序的入口点。要执行main
或任何其他功能,您必须在模块中运行它。将以下行添加到模块的底部:
if __name__ == '__main__':
main()
第if __name__ == '__main__':
行称为导入警戒。如果您实际将模块导入另一个模块,它会阻止main
运行。它有效,因为__name__
将是用于导入的实际名称,而不是'__main__'
。