Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python进行参数研究_Python_Csv_Parameters_Parameter Passing - Fatal编程技术网

用python进行参数研究

用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

我有一个名为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_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