用python进行参数研究
我有一个名为pattern.pc的文件,内容如下:用python进行参数研究,python,csv,parameters,parameter-passing,Python,Csv,Parameters,Parameter Passing,我有一个名为pattern.pc的文件,内容如下: <p1> bla bla <p2> bla bla 并获得这样的新文件(对于p1=1.0和p2=10.0): 它将被命名为例如pattern_p1_1_p2_10.pc等等。你能帮我用python完成吗。我忘了提到参数值之间的所有可能组合都是可以接受的-在这个特殊的情况下,我们将在最后有16个新文件。多谢各位 # assumes Python 2.7 PARAMETERS_FILE = "parameter_val
<p1> bla bla
<p2> bla bla
并获得这样的新文件(对于p1=1.0
和p2=10.0
):
它将被命名为例如pattern_p1_1_p2_10.pc等等。你能帮我用python完成吗。我忘了提到参数值之间的所有可能组合都是可以接受的-在这个特殊的情况下,我们将在最后有16个新文件。多谢各位
# assumes Python 2.7
PARAMETERS_FILE = "parameter_values.pc"
PATTERN_FILE = "pattern.pc"
OUTPUT_NAME = "pattern_p1_{p1}_p2_{p2}.pc"
def strs(line, split_on=None):
return [s.strip() for s in line.split(split_on)]
def main():
with open(PATTERN_FILE) as inf:
template = inf.read()
with open(PARAMETERS_FILE) as inf:
p1_lst = strs(next(inf, ""), ",")
p2_lst = strs(next(inf, ""), ",")
for p1, p2 in zip(p1_lst, p2_lst):
fname = OUTPUT_NAME.format(p1=p1, p2=p2)
data = template.replace("<p1>", p1).replace("<p2>", p2)
with open(fname, "w") as outf:
outf.write(data)
if __name__=="__main__":
main()
并将zip(p1_-lst,p2_-lst)中的p1,p2替换为产品(p1_-lst,p2_-lst)中的p1,p2的
:
,Hi@Hugh Bothwell感谢您的脚本。它工作得很好。但我的描述可能不完整。我想在p1和p2之间建立所有可能的组合。你能调整一下剧本吗。非常感谢大家大家大家好,Hugh Bothwell。。。可以加一些吗explanations@Drago:你想解释什么?如果它是一个特定的函数,Python有一个非常有用的特性,叫做help()
,即help(product)
。
1.0 bla bla
10.0 bla bla
# assumes Python 2.7
PARAMETERS_FILE = "parameter_values.pc"
PATTERN_FILE = "pattern.pc"
OUTPUT_NAME = "pattern_p1_{p1}_p2_{p2}.pc"
def strs(line, split_on=None):
return [s.strip() for s in line.split(split_on)]
def main():
with open(PATTERN_FILE) as inf:
template = inf.read()
with open(PARAMETERS_FILE) as inf:
p1_lst = strs(next(inf, ""), ",")
p2_lst = strs(next(inf, ""), ",")
for p1, p2 in zip(p1_lst, p2_lst):
fname = OUTPUT_NAME.format(p1=p1, p2=p2)
data = template.replace("<p1>", p1).replace("<p2>", p2)
with open(fname, "w") as outf:
outf.write(data)
if __name__=="__main__":
main()
from itertools import product