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

在数组中逐行搜索文件 python 2.7

在数组中逐行搜索文件 python 2.7

德玛西亚99 2021-10-12 16:17:42
我有一个文件看起来像这样:(...)- src: git+[server]  name: main  version: master- src: git+[server]  name: sec  version: master- src: git+[server]  name: compiler  version: master- src: git[server]  name: libs  version: master- src: git[server]  name: crosscomp  version: master(...)我只想在之后更改版本名称:主要和名称:秒所以我的想法是将整个文件逐行读入一个数组,并检查该行是否以 name: master 或 name: sec 开头。(与startswith())但是如何在找到后访问该行?
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

您可以成对处理这些行,并在找到匹配行时更新下一行。您需要在末尾用新行覆盖文件的内容。


with open(filename, 'r+') as f:

    lines = f.readlines()


    for i in range(len(lines)-1):

        if 'name: main' in lines[i] or 'name: sec' in lines[i]:

            lines[i+1] = lines[i+1].replace('master', 'newversion')


    f.seek(0)

    f.truncate()

    f.writelines(lines)


查看完整回答
反对 回复 2021-10-12
?
噜噜哒

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

maseterIndex = [i for i, x in enumerate(array) if x == "name: master"]

secIndex = [i for i, x in enumerate(array) if x == "name: sec"]

mergedlist = maseterIndex + secIndex

for index in mergedlist:

    #do something with next line

    print array[index+1]


查看完整回答
反对 回复 2021-10-12
  • 2 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号