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文件中的特定值?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)