В моем текущем проекте я пытаюсь получить список значений (пока я в порядке, получая их в виде списка строк, поскольку это облегчает часть кода), имя файла,и перебирайте значения, чтобы изменить значение в файле, чтобы одновременно отправлять множество вызовов терминалу.Проблема, которая у меня есть сейчас, заключается в том, что, хотя я и изменяю значения, представленные файлы не отличаются от исходного файла, поскольку мне не удается понять, что я неправильно перезаписываю файл.
1-я часть - ввод
if __name__ == '__main__':
if len(sys.argv) < 1:
print "Specify the input"
exit(1)
f = sys.argv[1]
list = ast.literal_eval(sys.argv[3])
2-я часть - перезапись
while i < len(list):
with open(f, 'r+') as file:
programFile = file.read()
for l in range(len(node)):
if i==0:
valuesDic.update({"initialValue":list[i]})
else:
valuesDic.update({list[i-1]:list[i]})
multiValuesChange(programFile, valuesDic)
out_file = open(f, "w")
out_file.write(programFile)
out_file.close()
call(["qsub","-l","h=node10",f])
i=i+1
3-я часть - multiValuesChange
def multiValuesChange(programFile, valuesDic):
rc = re.compile('|'.join(map(re.escape, valuesDic)))
def translate(match):
return valuesDic[match.group(0)]
return rc.sub(translate, programFile)
Спасибо.