在python中替换一行文本文件

时间:2018-08-21 15:03:45

标签: python file replace

我对Python还是很陌生,我正在尝试使用discord.py制作一个discord机器人,其想法是您可以赚取个人资料上显示的硬币。问题是我需要将配置文件存储在一个文件中,所以看起来像这样

userID1,10
userID2,20
userID3,30

预期输出:

userID1,10
userID2,120
userID3,30

基本上是“用户的ID不一致,硬币数量”,我试图用不同数量的硬币替换该行,而且我不知道如何在不创建另一个文件的情况下执行此操作。

这就是我现在所拥有的。

def addExp(userID,Points):
    with open(fname) as f:
        for line in f:
            if userID in line:
                info = line.split(',')
                newPoints= int(info[1]) + Points

UserID是用户的ID,因此每个用户的ID都不相同,而Points是我要添加的点数

1 个答案:

答案 0 :(得分:0)

我建议您采用以下解决方案,并在代码中添加注释以说明:

def addExp(UserID, Points):
    # Open the file and read the full content
    with open(fname, 'r') as f:
        lines = f.readlines()
    # Iterate over each line and replace the number of coins
    for i in range(len(lines)):
        if UserID in lines[i]:
            info = lines[i].split(',')
            info[1] = str(int(info[1]) + Points)
            lines[i] = ",".join(info) + '\n'
    # Overwrite the file with the updated content
    with open(fname, 'w') as f: 
        f.writelines(lines)


fname = 'file.txt'
addExp("userID2", 100)