草庐IT

python正则表达式,多行匹配,但仍想获取行号

我有很多日志文件,想用多行搜索一些模式,但为了方便地找到匹配的字符串,我还是想看到匹配区域的行号。任何好的建议。(复制代码示例)string="""####1ttteest####1ttttteeeestt####2ttest####2"""importrepattern='.*?####(.*?)####'matches=re.compile(pattern,re.MULTILINE|re.DOTALL).findall(string)foriteminmatches:print"lineno:?","matched:",item[更新]lineno是实际的行号所以我想要的输出看起来

python - 用python解析xml中的CDATA

我需要解析一个包含许多CDATAblock的XML文件,我需要保留这些block以供以后绘图:我需要反复快速地执行此操作,并且我正在寻找执行此操作的最佳方法。我读过ElementTree是速度更快的方法,但我愿意接受其他建议。 最佳答案 以下是如何操作的两个示例:fromlxmlimportetreeimportxml.etree.ElementTreeasElementTreeCONTENT=""""""defparse_with_lxml():root=etree.fromstring(CONTENT)forloginroot.

python - 如何通过 python 从 mediawiki 标记的文章中解析/提取数据

SourceMediawikimarkup现在我正在使用各种正则表达式将mediawiki标记中的数据“解析”到列表/字典中,以便可以使用文章中的元素。这不是最好的方法,因为必须处理的案例数量很多。如何将一篇文章的mediawiki标记解析为各种python对象,以便可以使用其中的数据?例如:将所有标题提取到字典,用它散列部分。获取所有维基间链接,并且将它们放入列表中(我知道这可以通过API完成,但我会而只有一个API调用减少带宽使用)。提取所有图像名称并将它们散列为他们的部分各种正则表达式都可以实现上述目标,但我发现我必须制作的数字相当大。这是mediawikiunofficials

python - 数学表达式评估

实现一个python程序的最佳方法是什么,该程序将接受一个字符串并根据运算符优先级输出其结果(例如:“4+3*5”将输出19)。我在谷歌上搜索了解决这个问题的方法,但它们都太复杂了,我正在寻找一个(相对)简单的方法。说明:我需要比eval()稍微高级的东西——我希望能够添加其他运算符(例如最大运算符——4$2=4),或者,我对这个学术比专业更感兴趣——我想知道如何做到这一点。 最佳答案 如果您“对学术感兴趣”,您想了解如何编写具有运算符优先级的解析器。SimpleTop-DownParsinginPython是一篇不错的文章,它构建

python - 使用生成器 ( python ) 解析 fasta 文件

我正在尝试解析一个大型fasta文件,但遇到内存不足错误。一些改进数据处理的建议将不胜感激。目前该程序正确打印出名称但是部分通过文件我得到一个MemoryError这是生成器defreadFastaEntry(fp):name=""seq=""forlineinfp:ifline.startswith(">"):tmp=[]tmp.append(name)tmp.append(seq)name=lineseq=""yieldtmpelse:seq=seq.join(line)这里是调用者stub更多将在这部分工作后添加fp=open(sys.argv[1],'r')forseqinre

python - 如何在 Python 中获取 XML 标签值

我在Python的unicode-string变量中有一些XML,如下所示:count6如何提取6在6使用Python? 最佳答案 使用lxml:importlxml.etree#xmlstrisyourxmlinastringroot=lxml.etree.fromstring(xmlstr)textelem=root.find('result/field/value/text')printtextelem.text编辑:但我想可能会有不止一个结果......importlxml.etree#xmlstrisyourxmlinas

python - 用python解析JSON : blank fields

我在用python解析JSON时遇到问题,现在我卡住了。问题是我的JSON的实体并不总是相同的。JSON类似于:"entries":[{"summary":"hereisthesunnary","extensions":{"coordinates":"coords","address":"address","name":"name""telephone":"123123""url":"www.blablablah"},}]我可以在JSON中移动,例如:forentrieinentries:name=entrie['extensions']['name']tel=entrie['exte

Python不会写入文件

我正在尝试将打印精美的电子邮件写入.txt文件,以便我可以更好地查看我想从中解析出的内容。这是我的代码的这一部分:result,data=mail.uid('search',None,"(FROM'tiffany@e.tiffany.com')")#searchandreturnuidsinsteadlatest_email_uid=data[0].split()[-1]result,data=mail.uid('fetch',latest_email_uid,'(RFC822)')raw_email=data[0][1]html=raw_emailsoup=BS(html)prett

Python:Unicode 和 ElementTree.parse

我正在尝试迁移到Python2.7,因为Unicode在那里很重要,我会尝试使用XML文件和文本处理它们,并使用xml.etree.cElementTree解析它们图书馆。但是我遇到了这个错误:>>>importxml.etree.cElementTreeasET>>>fromioimportStringIO>>>source="""\...............Text............""">>>srcbuf=StringIO(source.decode('utf-8'))>>>doc=ET.parse(srcbuf)Traceback(mostrecentcalllast

python - 如何使用 python CGI 解析 "request body"?

我只需要编写一个简单的pythonCGI脚本来解析包含JSON的POST请求的内容。这只是测试代码,以便我可以测试客户端应用程序,直到实际服务器准备就绪(由其他人编写)。我可以读取cgi.FieldStorage()并转储keys()但找不到包含JSON的请求正文。我还可以转储提供大量信息的os.environ(),只是我没有看到包含请求正文的变量。感谢任何意见。克里斯 最佳答案 如果您使用的是CGI,只需从stdin读取数据:importsysdata=sys.stdin.read()