Как я могу написать несколько файлов с изменением текста в каждом из них - PullRequest
0 голосов
/ 02 июля 2018

У меня есть спек-файл (можно редактировать как текст) в формате

datavar 0 pictype
datavar 1 absmag

texturevar pictype

#The texture filename to associate with txnum 1
texture -a 24 24_rot_0001.sgi

#x       y       z       no.   lum
100.0   100.0   100.0   24     10.0

Что мне нужно сделать, это создать «n» количество файлов, каждый с именем rot_ "n" .speck, с единственным изменением в файле, которое заменяет rot_0001.sgi на rot_00 "n" .sgi. Я знаю, что, вероятно, это может сделать довольно простой цикл python Но я не знаю, какую форму он примет. Вы можете помочь?

1 Ответ

0 голосов
/ 02 июля 2018

Вы правы, вы можете использовать цикл FOR для достижения этой цели. Я использовал следующий код для записи 4 файлов с именем rot_n.spek. Я использовал файл, который вы представили выше, для создания файлов.

import re

for j in range(4):
    file_name = "rot_{:04d}.spek".format(j)
    with open(file_name, 'w+') as new_file:
        with open('simple.txt', 'r') as old_file:
                for line in old_file:
                    new_file.write(re.sub(r"24_rot_\d+.sgi",
                    "24_rot_00{:04d}.sgi".format(j), line ) )

Если, поскольку вы всегда читаете один и тот же файл каждый раз, вы также можете использовать string replace .

new_file.write(line.replace("24_rot_0001.sgi", "24_rot_{:04d}.sgi".format(j)))

Я нашел этот ТАК полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...