草庐IT

Python的类和继承

全部标签

Python - 通过 lxml 添加顶级评论

我正在使用python2.6和lxml,我想像这样将顶级注释添加到xml中我用谷歌搜索了这个addprevious()方法来做到这一点,这是我的代码:root=ET.Element("DCSubtitle")root.addprevious(ET.Comment('toplevelcomment'))tree=ET.ElementTree(root)tree.write(sys.stdout,pretty_print=True,xml_declaration=True,encoding='UTF-8')但是,addprevious()似乎不太符合逻辑,你必须添加第二行然后添加第一行,有

python - 使用 Python 创建 SVG

我正在构建一组SVG文件,其中包含不幸数量的硬编码值(它们必须使用某些元素以毫米为单位打印,而其他元素必须按百分比缩放,并且大多数值是相对于每个元素定义的其他)。与其手动管理这些数字(老天保佑我想改变一些东西),我想我可以使用我可信赖的hammerpython来完成这项任务。SVG1.1本身不支持任何类型的可变方案,让我可以做我想做的事,而且我对将javascript或不稳定的w3c草案规范引入混合不感兴趣。一个明显的解决方案是使用字符串格式来读取、解析和替换我的SVG文件中的变量。这对于较大的文档来说似乎不是一个好主意,但具有简单和便携的优点。我的第二个想法是调查可用的python-

c# - xsd.exe 生成的类不序列化默认值属性

我有几个由XSD架构的xsd.exe生成的.cs文件。我的问题是,当我尝试将这些类序列化为xml时,其值与xsd架构中定义的默认值匹配的属性未被序列化。当我删除[System.ComponentModel.DefaultValueAttribute(typeof(),"")]时,我发现我的问题得到了解决表示默认字段的成员的属性。所以我的问题是没有更优雅的方法来做到这一点吗?例如,有没有什么方法可以指定我想要对默认值进行序列化? 最佳答案 简短的版本是:是的。看起来这是最简单的方法。我已经尝试了“显而易见”的事情(特别是XmlSeri

python - 基本的 Python 文件搜索和 I/O

我正在尝试用Python完成一个简单的任务,但我是这门语言的新手(我是C++)。我希望有人能够为我指明正确的方向。问题:我有一个充满数据的XML文件(12mb),文件中有开始标记“xmltag”和结束标记“/xmltag”,它们代表我要提取的数据部分的开始和结束。我想用一个循环浏览这个打开的文件,并为每个实例找到一个开始标记并将该部分中的数据复制到一个新文件,直到结束标记。然后我想重复这个到文件的末尾。我对文件I/O很满意,但不是最有效的数据循环、搜索和提取。我真的很喜欢这种语言的外观,希望我能更多地参与其中,这样我就可以回馈社区。非常感谢! 最佳答案

python - 使用 lxml,是什么导致 "lxml.etree.XMLSyntaxError: Document is empty"错误?

我正在使用mechanize/cookiejar/lxml来读取页面,它适用于某些页面但不适用于其他页面。我在其中遇到的错误是标题中的错误。我不能在这里发布页面,因为它们不是SFW,但是有没有办法修复它?基本上,这就是我所做的:importmechanize,cookielibfromlxmlimportetreebr=mechanize.Browser()cj=cookielib.LWPCookieJar()br.set_cookiejar(cj)br.set_handle_equiv(True)br.set_handle_gzip(True)br.set_handle_redire

xml - 如何在混淆步骤中保留 JAXB 生成的类文件 "package-info.class"

我有一个问题,我有一些JAXB生成的java文件,它们之间有众所周知的“package-info.java”,它只包含2行代码、一个注释和一个包定义:@javax.xml.bind.annotation.XmlSchema(namespace="http://it.tms.project/input")packageit.tms.project.jaxb.input;现在,当编译这个文件时会生成一个普通的.class文件,但是当我尝试混淆它时,proguard不会将它添加到混淆的output.jar中,我想那是因为它不包含任何类或其他东西并且没有其他java文件引用它。我已经尝试了一些

python - 在 Python 中使用&符号修复无效的 XML

我正在使用Python来操作从另一个系统接收到的XML文件。该系统生成无效的XML。主要是,它不会转义XML中的某些&。因此,例如,我有一些这样的行:Ben&Jerry当然,当使用SAX或DOM进行解析时,它会抛出无效token错误。对于一些更一般的背景-它是一个非常大的文件(2MB),相当平坦,并且在CDATA中包含大量数据。我尝试过的:编写一个Regex只替换未转义的&,而不转义>诸如此类:&(?!\w{2,4};)。它修复了它,但它在CDATA中转义了&符号,这随后导致目标系统出现错误。之后我无法对CDATA中的所有内容进行转义,因为其中一些需要保持转义状态。使用Beautifu

python - 你如何用 python 解析嵌套的 XML 标签?

如果我使用了错误的术语,请原谅,但这就是我想要完成的。我正在尝试从嵌套标签中提取属性和文本信息,例如别名、付款、金额等...但是我的示例代码块只能从中提取信息,而不能从中的子元素中提取任何信息。我如何着手使用elementtree来尝试获取我的子元素的子元素?如果我使用不当,请原谅我的术语:**示例XMLblock:**smith_laptop102.168.1.1Mr_Smith125.99matt_laptop102.168.1.2Mr_Mat100.00**代码片段:**importosfromxml.etreeimportElementTreeasETdefmain():roo

python - 如何从 Python 快速流式传输 XML 输出

迭代编写XML文件的快速方法是什么(即无需将整个文档存储在内存中)?xml.sax.saxutils.XMLGenerator可以工作但速度很慢,在I7机器上大约为1MB/s。这是一个testcase. 最佳答案 我意识到不久前有人问过这个问题,但与此同时,引入了一个lxmlAPI,看起来很有希望解决这个问题:http://lxml.de/api.html;具体请引用以下章节:“增量式XML生成”。我通过流式传输10M文件快速测试了它,就像在您的基准测试中一样,在我的旧笔记本电脑上只花了不到一秒,这绝不是很科学,但与您的genera

Python:加入和写入(XML.etrees)存储在列表中的树

我正在遍历一些XML文件并生成我想存储在defaultdict(list)类型中的树。在每个循环中,找到的下一个child将存储在字典的单独部分中。d=defaultdict(list)counter=0forchildinroot.findall(something):tree=ET.ElementTree(something)d[int(x)].append(tree)counter+=1因此,对多个文件重复此操作会产生很好的索引结果;一组在不同解析文件中位于位置1的树,依此类推。问题是,我如何连接所有d,并将树(作为累积树)写入文件?我可以遍历字典来获取每棵树:forxind:f