Python 通过匹配输入文件中的字符串来写入新文件

Python 通过匹配输入文件中的字符串来写入新文件,python,regex,string,scripting,Python,Regex,String,Scripting,关于用Python编写脚本,我有一些天真的问题 我有一些表单的输入文件 "{1,g,{Frog,12}}",(x**2+.7*x)/2**x "{2,{g,h},{Pig,17}}",(.8*x**3-1.3*x)/2.5**x 等等,其中第一列的第一个和最后一个元素始终是整数,第一列的第二个元素可以是字符串或列表,第一列的第三个元素是字符串,第二列是新变量的函数 我想创建一个输出文件,该文件采用每一行并以以下形式写入新文件: if newstr==1gCow82: r

关于用Python编写脚本,我有一些天真的问题

我有一些表单的输入文件

"{1,g,{Frog,12}}",(x**2+.7*x)/2**x
"{2,{g,h},{Pig,17}}",(.8*x**3-1.3*x)/2.5**x
等等,其中第一列的第一个和最后一个元素始终是整数,第一列的第二个元素可以是字符串或列表,第一列的第三个元素是字符串,第二列是新变量的函数

我想创建一个输出文件,该文件采用每一行并以以下形式写入新文件:

    if newstr==1gCow82:
        return eval((.2*x**2+x-.3)/1.8**x)
    elif newstr==1gFrog12:
        return eval((x**2+.7*x)/2**x)
    elif newstr==2ghPig17:
        return eval((.8*x**3-1.3*x)/2.5**x)
(我将为其准备类似的内容

 def bignewfunction(a,b,c,d,x):
 newstr="".join(str(a),b,c,str(d))
手动)

我认为这并不难,但它可能需要一些我无法理解的正则表达式机制(例如,如何将字符串“{a1,b1,{c1,d1}}”转换为不带引号、方括号或逗号的字符串)以及一些我不知道的Python文件创建。或者,如果我可以从输入文件的第一列中删除括号和引号,可能会更容易,但这也需要我目前缺乏的类似脚本技巧

非常感谢您的帮助。提前谢谢


编辑编辑以包含输入文件外观的更具体示例。

我不熟悉Python,但一些带有正则表达式的伪代码可以帮助您:

prefix = ''
for (find = regexfind(/"((?:[^"\\]|\\.)*)",([^\n]+)/gi)) {
  print prefix + 'if newstr==' + find[1].replace("\W", '') + ':'
  print '  return eval(' + find[2] + ')'
  prefix = 'el'
}
\W
(大写!W)捕获所有不是a-z、0-9或u的内容,并将其替换为空字符串

较长正则表达式的可视化,为您提供所需的两个独立部分:


提供一些包含您提到的所有数据类型(数字、字符串、列表)的输入文件示例。请提供一些示例输入数据,以及在新文件中处理后输出相同数据的方式,以便其他人也可以查看他们是否正确操作。