الفرق بين ElementTree وcElementTree؟
-
12-12-2019 - |
سؤال
لدي مقتطف صغير من لغة بايثون لتحليل XML يعمل مع ElementTree، ولكن ليس مع cElementTree.لماذا هذا؟
#!/usr/bin/python3
import sys
import xml.etree.cElementTree as ET
tree = ET.parse(sys.stdin)
هذا يثير الاستثناء:
cElementTree.ParseError: no element found: line 1, column 0
عندما يطلق عليه مثل هذا
echo "<a><b>c</b></a>" | ./xmltest.py
يحرر:لقد لاحظت للتو أن المقتطف يعمل في python 2.7.2، ولكن ليس في python 3.2.2 أو 3.1.4، هل لديك أي فكرة عن السبب؟
تحديث: يبدو أنه تم إصلاحه في بيثون 3.3
المحلول
لقد واجهت الخطأ الذي تم توثيقه مؤخرًا في العدد 14246.وإلى أن يتم إصلاحها، هناك حل بديل لـ Python 3 وهو التغيير sys.stdin
ليكون byte
دفق بدلاً من أ string
تدفق:
import sys
import xml.etree.cElementTree as ET
sys.stdin = sys.stdin.detach()
tree = ET.parse(sys.stdin)
لا تنتمي إلى StackOverflow