Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 使用python替换文件中的第一个匹配项_Python 2.7 - Fatal编程技术网

Python 2.7 使用python替换文件中的第一个匹配项

Python 2.7 使用python替换文件中的第一个匹配项,python-2.7,Python 2.7,因此,我试图替换python文件本身中的“'pleb'”。但是,当我激活代码时,它会替换3次出现中的2次,而不是第一次 rank_mod = ['pleb'] f1 = open('C:\Python27\Scripts\bot\bot.py', 'r') f2 = open('C:\Python27\Scripts\bot\bot.py', 'w') for line in f1:

因此,我试图替换python文件本身中的“'pleb'”。但是,当我激活代码时,它会替换3次出现中的2次,而不是第一次

rank_mod = ['pleb']

f1 = open('C:\Python27\Scripts\bot\bot.py', 'r')
                            f2 = open('C:\Python27\Scripts\bot\bot.py', 'w')
                            for line in f1:
                                f2.write(line.replace("'pleb'", "'" + username + "', 'pleb'", 1))
                            f1.close()
                            f2.close()
当这是激活时,它看起来如下所示:

rank_mod = ['(the username)', 'pleb']

f1 = open('C:\Python27\Scripts\bot\bot.py', 'r')
                            f2 = open('C:\Python27\Scripts\bot\bot.py', 'w')
                            for line in f1:
                                f2.write(line.replace("'(the username)' , 'pleb'", "'" + username + "', 'pleb'", 1))
                            f1.close()
                            f2.close()

如何修复此问题?

我不确定问题到底是什么,但可能是由于打开同一文件进行读写时出现的行为。试试这个:

rank_mod = ['pleb']
f1 = open('C:\Python27\Scripts\bot\bot.py', 'r')
contents = f1.read().replace("'pleb'","'" + username + "', 'pleb'", 1)
f1.close()
f1 = open('C:\Python27\Scripts\bot\bot.py', 'w')
f1.write(contents)
f1.close()

很遗憾,这会使脚本崩溃。哦,我想你在脚本的其他地方定义了用户名。如果之前没有定义,则需要首先定义此变量。否则,这应该是可行的。如果没有,请报告您收到的错误消息,以便更好地帮助诊断问题。