如何编写多个文件,每个文件中的文本都更改

时间:2018-07-02 15:00:53

标签: python loops

我有一个格式为

的斑点文件(可以像txt一样进行编辑)
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 :(得分:0)

您是对的,您可以使用FOR循环来完成此操作。我使用以下代码编写了名为rot_n.spek的4个文件。我使用了您上面介绍的文件来创建文件。

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)))

我发现此SO answer很有帮助。