Заменить t = 0,000000, считая время - PullRequest
0 голосов
/ 20 декабря 2018

Я использую этот код для замены t = 0,000000 на счетчик (время = время + 10), поэтому каждый раз, когда код находит t = 0,000000, он добавляет 10, и они становятся 0, 10, 20, ... Любые идеикак это сделать

import re
import itertools
counter = itertools.count(0, 10)
with open("input.txt", "r") as f_in:
with open("output.txt", "w") as f_out:
    for line in f_in:
        re.sub("t=0.000000", f"t={next(counter):.6f}", line.lower())
        f_out.write(line + "/n")

1 Ответ

0 голосов
/ 20 декабря 2018

Вы, вероятно, хотите что-то подобное:

import re
import itertools
counter = itertools.count(0, 10)
with open("input.txt", "r") as f_in:
    with open("output.txt", "w") as f_out:
        for line in f_in:
            re.sub("t=0.000000", f"t += {next(counter)}", line.lower())
            f_out.write(line + "/n")

count дает бесконечную последовательность, кратную 10, sub заменяет старую часть новой.

EDIT:

Просто заметил, что вы хотите другой вывод, соответственно изменив строку:

import re
import itertools
counter = itertools.count(0, 10)
with open("input.txt", "r") as f_in:
    with open("output.txt", "w") as f_out:
        for line in f_in:
            re.sub("t=0.000000", f"t={next(counter):.6f}", line.lower())
            f_out.write(line + "/n")
...