如果文本文件中包含用户在Python中输入的特定字符串,该如何更新文本文件中的行?

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

http://img1.mukewang.com/60a372eb000140a612530652.jpg

我想在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")

我是一个菜鸟程序员,因此请向正确的方向提供帮助或指导。


蛊毒传说
浏览 164回答 3
3回答

慕容3067478

您需要打开文件进行读取(默认),然后需要打开文件进行写入: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)

喵喵时光机

具体来说,这样的事情可能会解决问题:import re# read in file here...re.sub(r"PRIMER_PRODUCT_SIZE_RANGE=[0-9,-]*", "PRIMER_PRODUCT_SIZE_RANGE=500-1000", s)在这里,s将是文本文件中的整个字符串。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python