运行XBRL代码时出现“name 'file' is not defined”错误求助
解决"name 'file' is not defined"错误及代码修正
错误原因
file()是Python 2的内置函数,Python 3已移除该函数,不再支持使用。- 代码仅导入了
XBRLParser类,但未实例化生成xbrl_parser对象,后续调用parseGAAP方法会触发新的未定义报错。
修正后的代码
from xbrl import XBRLParser, GAAP, GAAPSerializer import bs4, lxml # 实例化XBRLParser解析器对象 xbrl_parser = XBRLParser() # 用Python 3支持的open()替代file(),配合with语句安全管理文件 with open(r"C:\Users\anant\NETRA\https---archives.nseindia.com-corporate-xbrl-INDAS_90168_794349_14022023041135.xml.url", 'r') as file_obj: xbrl = xbrl_parser.parseGAAP(file_obj)
关键说明
- 使用
with语句打开文件会自动在操作完成后关闭文件,避免资源泄漏。 - 路径前的
r表示原始字符串,防止路径中的反斜杠被解析为转义字符。 - 必须先通过
XBRLParser()创建解析器实例,才能调用其parseGAAP方法处理文件。
内容的提问来源于stack exchange,提问作者shantanu
相关产品推荐
相关产品推荐

