2014-02-19 118 views
0

我有一個模板文件,說「template.txt」包含此文例如:生成多個文件蟒蛇

variable_1 = value_1 ; 
variable_2 = value_2 ; 
variable_3 = value_3 ; 

我要生成多個文件「文件#.TXT」(其中#是多少),在不同的目錄中(每個新文件的新目錄),每次修改模板文件中的值(這些值將由另一個Python腳本(Pyevolve)傳遞)。

這是可能的(在Python或任何其他腳本語言)?

預先感謝您。

+0

你能記錄你想要在引用的例子中創建的文件名(帶路徑)嗎? – user590028

+1

是的,這是可能的。這是否回答你的問題? – lanzz

+0

user590028:比方說,我想要名爲「folder_value_1_value_2_value3」的文件夾中名爲「data.txt」的文件。 lanzz:你能告訴我該怎麼做嗎? – user3116130

回答

0
import re 

# this regular expression matches lines like " abcd = feg ; " 
CONFIG_LINE = re.compile("^\s*(\w+)\s*=\s*(\w+)\s*;") 

# this takes { "variable_1":"a", "variable_2":"b", "variable_3":"c" } 
# and turns it into "folder_a_b_c" 
DIR_FMT = "folder_{variable_1}_{variable_2}_{variable_3}".format 

def read_config_file(fname): 
    with open(fname) as inf: 
     matches = (CONFIG_LINE.match(line) for line in inf) 
     return {match.group(1):match.group(2) for match in matches if match} 

def make_data_file(variables, contents): 
    dir = DIR_FMT(**variables) 
    fname = os.path.join(dir, "data.txt") 
    with open(fname, "w") as outf: 
     outf.write(contents) 

def main(): 
    variables = read_config_file("template.cfg") 
    make_data_file(variables, "this is my new file") 

if __name__=="__main__": 
    main() 
+0

非常感謝!我會試試看! – user3116130