固定文本后替换变量文本

时间:2017-08-09 21:51:38

标签: python

所以我有一个类似于这个的.txt文件:

Patient Name         : John Don, 9989
Patient ID           : 9989
Comment              : Summation
Date                 : 09.08.2017
Exported by          : Denver
Type                 : DVH
Description          : Some random text

我还有另一个列表,其中包含我想要使用的名称。

所以基本上,我在不同文件夹中有几个这样的.txt文件,这些文件名与我在列表中的名称相同,fx:

name_list = ["1", "1_NEW", "2", "3", "3_RE"]

我想要做的是将Patient namePatient ID的值更改为列表中的任何内容。

因此,例如,对于列表中的第一个元素,它打开具有相同名称的文件夹,然后打开该文件夹中的.txt文件(始终使用相同的名称),读取.txt文件,然后更改Patient namePatient ID之后的值到列表的值。所以对于第一个我最终会:

Patient Name         : 1
Patient ID           : 1
Comment              : Summation
Date                 : 09.08.2017
Exported by          : Denver
Type                 : DVH
Description          : Some random text

可以这样做吗?

1 个答案:

答案 0 :(得分:1)

很公道,这是一个你可以使用的代码示例:

  

请注意,因为这可能会覆盖文件(尝试使用一个文件)

for file in ["1"]:

    # Read file
    with open("{0}/{0}.txt".format(file)) as f:
        filecontent = [i.strip("\n") for i in f.readlines()]    

    # Update first and second row
    filecontent[0] = filecontent[0].split(":")[0] + ": {}".format(file)
    filecontent[1] = filecontent[1].split(":")[0] + ": {}".format(file)

    # Ovewrite old file and write
    with open("{0}/{0}.txt".format(file), "w") as f:
        string = '\n'.join(filecontent)
        f.write(string)
        # print(string)