以特定的方式更改文本文件中的文本



我有一个文本文件其中有几行叫做

moves={123:abc:567:mno}

不,我想把它转换成

moves={123:abc, 567:mno}

。当':'在字符串之后和数字后面时,我想用':'替换:例如,我想让它像python字典格式一样,我知道如何更改文本文件中的特定行,例如

with open("images/filename.txt", 'r+', encoding='Latin1') as fp:
# read an store all lines into list
lines = fp.readlines()
# move file pointer to the beginning of a file
fp.seek(0)
# truncate the file
fp.truncate()
for line in lines:
if line.startswith('moves='):
do something()
fp.writelines(lines)

我不知道我应该如何替换这行,使它在我想要的原因。请不要删除或关闭问题,告诉我应该如何在评论中编辑问题,以便我可以更改它。提前感谢

如果你的文件中有一行(作为字符串),并且它完全是那种格式,那么你可以用冒号分隔符分割字符串,然后在适当的地方用逗号重新连接。例如:

s = 'moves={123:abc:567:mno}'
t = s.split(':')
print(':'.join(t[:2])+','+':'.join(t[2:]))

输出:

moves={123:abc,567:mno}
s = 'moves={123:abc:567:mno}'
t = s.split(':')
print(t[2:5])
# print(':'.join(t[:2])+','+':'.join(t[2:]))
output = ''
for i in range(int(len(t)/2)):
output += ':'.join(t[i*2:i*2 + 2]) + ', '
output = output.removesuffix(', ')
print(output)

感谢@Lancelot du Lac帮助我即兴回答,我已经得到了我问题的答案

最新更新