我正在编写一个函数,允许用户查找特定行(文件中)的内容,并替换该行中的部分内容,然后在同一行中重新写入文件。在
def editPlayer():
print "What information would you like to edit?"
print "1- Forname"
print "2- Surname"
print "3- Email address"
choice = int(raw_input(""))
f = open("persons.txt","r+")
for i in range(2): # number of type of information
if choice == i: #check if choice equal current running of i
line[choice-1] = str(raw_input("Enter new information: ")) #modify choice-1's element in line
lineStr = line[0] + ";" + line[1] + ";" + line[2] #makes list in a string
上面的代码可以工作,也就是说,如果用户要编辑播放器的电子邮件地址,他的输入将更改line
中的第三个元素,lineStr
将以相同的顺序包含修改后的电子邮件地址的所有信息。在
我被困在需要将lineStr
重新写入我的文件的同一行的地方。文件看起来是这样的
问题发生的原因是
f.write(lineStr)
文件的第一行将被替换,因此如果我要修改Sarah的第二个名字(Stack)并将其写入文件,那么该文件将如下所示
Sarah;Stack;s.brown@anemailaddress.com
Sarah;Brown;s.brown@anemailaddress.com
而不是它应该是什么样子,即:
Joe;Bloggs;j.bloggs@anemailaddress.com
Sarah;Stack;s.brown@anemailaddress.com
谁能把我引向正确的方向吗?任何帮助都将不胜感激。谢谢你
您需要这样做的方法,以及大多数程序的方法-就是用正确的输出编写一个临时文件,然后替换原始文件。这是最简单的方法。在
一般逻辑如下:
要用Python实现它:
相关问题 更多 >
编程相关推荐