我有一个文件如下:
(...)
- 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
(...)
我只想在
之后更改版本名称:主要
和
名称:秒
所以我的想法是将整个文件逐行读取到数组中,并检查该行是否以名称:master或name:sec开头。 (带有startswith()
)
但是发现后如何访问该行?
答案 0 :(得分:3)
只要找到匹配的行,就可以成对处理这些行并更新下一行。您需要在末尾用新行覆盖文件的内容。
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)
答案 1 :(得分:0)
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]