为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蛊毒传说 2021-05-14 15:15:00
目前,我有一个程序接受文本文件作为设置参数。文本文件的格式如下:我想在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")我是一个菜鸟程序员,因此请向正确的方向提供帮助或指导。
查看完整描述

3 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

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


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)


查看完整回答
反对 回复 2021-05-18
?
喵喵时光机

TA贡献1846条经验 获得超7个赞


具体来说,这样的事情可能会解决问题:


import re

# read in file here...

re.sub(r"PRIMER_PRODUCT_SIZE_RANGE=[0-9,-]*", "PRIMER_PRODUCT_SIZE_RANGE=500-1000", s)

在这里,s将是文本文件中的整个字符串。


查看完整回答
反对 回复 2021-05-18
  • 3 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信