我有一个格式为
的斑点文件(可以像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循环可以执行此操作。但我不知道它将采取的形式。你能帮忙吗?
答案 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很有帮助。