如果文本文件中的某行包含Python中的用户输入的某个字符串,它将如何更新?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (221)

目前我有一个程序接受文本文件作为设置参数。文本文件的格式如下:

我想在Python中做的是能够解析文件。我想读取每一行并检查它是否包含特定字符串,如果该行包含它,则能够将用户输入文本附加/更新到该行的末尾。

例如,在文本文件中找到“PRIMER_PRODUCT_SIZE_RANGE =”(突出显示),并且我想从“PRIMER_PRODUCT_SIZE_RANGE = 100-300”更新它以读取例如“PRIMER_PRODUCT_SIZE_RANGE = 500-1000”。我希望能够为几个参数(我根据自己的需要选择)执行此操作。

我研究过的一些工具包括fileinput模块,执行常规文件打开/写入(显然我无法进行编辑),以及我发现的一个名为in_place模块的模块

我使用in_place模块的一些初步代码:

def SettingFileParser(filepath):
    with in_place.InPlaceText(filepath) as text_file:
        for line in text_file:
            if 'PRIMER_PRODUCT_SIZE_RANGE=' in line:
                text_file.write("idk what to put here")

我是序言的noob程序员,所以在正确的方向上的任何帮助或指导将不胜感激。

提问于
用户回答回答于

您需要打开文件进行读取(默认),然后您需要打开一个文件进行编写:

def SettingFileParser(filepath):
    with open(filepath, 'r') as read_file:
        lines = read_file.readlines():
        with open(filepath, 'w') as write_file:
            for line in lines:
                if line.startswith('PRIMER_PRODUCT_SIZE_RANGE='):
                    # keep the line the same except the part needing replacement
                    write_file.write(line.replace('100-300','500-1000'))
                else:
                    # otherwise just write the line as is
                    write_file.write(line)

扫码关注云+社区

领取腾讯云代金券