python – Pyparsing:如何解析数据然后编辑.txt文件中的特定值?

python – Pyparsing:如何解析数据然后编辑.txt文件中的特定值?,第1张

概述我的数据位于.txt文件中(不,我无法将其更改为其他格式),它看起来像这样: varaiablename = value something = thisvalue youget = the_idea 这是我到目前为止的代码(取自Pyparsing中的示例): from pyparsing import Word, alphas, alphanums, Literal, restOfLine, O 我的数据位于.txt文件中(不,我无法将其更改为其他格式),它看起来像这样:

varaiablename = value@H_301_3@something = thisvalue@H_301_3@youget = the_IDea

这是我到目前为止的代码(取自Pyparsing中的示例):

from pyparsing import Word,Alphas,Alphanums,literal,restOfline,OneOrMore,\empty,Suppress,replaceWithinput = open("text.txt","r")src = input.read()# simple grammar to match #define'sIDent = Word(Alphas + Alphanums + "_")macroDef = IDent.setResultsname("name") + "= " + IDent.setResultsname("value") + literal("#") + restOfline.setResultsname("desc")for t,s,e in macroDef.scanString(src):print t.name,"=",t.value

那么如何告诉我的脚本编辑特定变量的特定值?@H_301_3@例:@H_301_3@我想将variablename的值从value更改为new_value.@H_301_3@所以基本上是变量=(我们想要编辑的数据).

我可能应该明确表示我不想直接进入文件并通过将值更改为new_value来更改值,但我想解析数据,找到变量然后给它一个新值.

解决方法 对于此任务,您不需要使用特殊实用程序或模块 @H_301_3@你需要的是读取行并将它们分成列表,所以第一个索引是左边,第二个索引是右边. @H_301_3@如果以后需要这些值,可能需要将它们存储在字典中.

那么这里是简单的方法,对于python中的新人.取消注释行白色打印以将其用作调试.

f=open("conf.txt","r")txt=f.read() #all text is in txtf.close()fwrite=open("modifIEd.txt","w")splitedlines = txt.splitlines():#print splitedlines for line in splitedlines:    #print line    conf = line.split('=')    #conf[0] is what it is on left and conf[1] is what it is on right    #print conf    if conf[0] == "youget":        #we get this        conf[1] = "the_super_IDea" #the_IDea is Now the_super_IDea    #join conf whit '=' and write    newline = '='.join(conf)    #print newline    fwrite.write(newline+"\n")fwrite.close()
总结

以上是内存溢出为你收集整理的python – Pyparsing:如何解析数据然后编辑.txt文件中的特定值?全部内容,希望文章能够帮你解决python – Pyparsing:如何解析数据然后编辑.txt文件中的特定值?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1207028.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存