我有一个xml文件 - 一种模板,用于填充参数并发出请求(创建一些数据).
我打开这个文件
tree = ET.parse(path_to_file)
Run Code Online (Sandbox Code Playgroud)
然后我循环从文件中获取xml,填充参数并发送请求.但在2555次请求后,我收到一条错误消息:
IOError: [Errno 24] Too many open files: 'resources/cmr/skeletons/man/CreateLiveEvent.xml'
Run Code Online (Sandbox Code Playgroud)
有没有办法在ET.parse()打开它之后关闭文件?
谢谢
升级2.7安装.这应该在问题#7334中得到修复,并包含在2.7.3中.它确实看起来像有在程中的错误cElementTree但执行关闭的文件(例如,它不关闭它们).
另一种方法是自己打开文件:
with open(path_to_file, 'rb') as xml_file:
tree = ET.parse(xml_file)
Run Code Online (Sandbox Code Playgroud)
并将其留给with语句来关闭文件对象.将文件打开为二进制文件 ; XML解析器的工作是处理行结尾和编码.
| 归档时间: |
|
| 查看次数: |
5772 次 |
| 最近记录: |