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

我有一个文件看起来像这样:


(...)

- 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())


但是如何在找到后访问该行?


德玛西亚99
浏览 171回答 2
2回答

慕虎7371278

您可以成对处理这些行,并在找到匹配行时更新下一行。您需要在末尾用新行覆盖文件的内容。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)

噜噜哒

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 + secIndexfor index in mergedlist:    #do something with next line    print array[index+1]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python