我需要一个编辑功能,目前我有代码为用户输入一个身份证号码(行号相同),然后写入到特定的文本文件,但不是取代输入的行,它会清除整个文件,只保存编辑的条目。如何更改代码,使其只更改输入的行,而不删除文件中的所有数据。你知道吗
import time
global idnum
def number():
global idnum
print()
idnum = int(input("Enter the id number of who you want to edit: "))
def edit():
number()
num_lines = sum(1 for line in open('Surname'))
print()
if idnum> num_lines or idnum ==0 or idnum < 0:
print("Not valid")
time.sleep(0.5)
print("Try again")
print()
time.sleep(0.2)
again()
else:
print()
for file in ["Gender"]:
with open(file) as f:
print(f.readlines()[idnum-1], end='')
def editgender():
with open("Gender",'r') as f:
get_all=f.readlines()
with open("Gender",'w') as f:
for i,line in enumerate(get_all,1): ## STARTS THE NUMBERING FROM 1 (by default it begins with 0)
if i == idnum:
Gender = input("Enter new gender: ")
f.writelines(Gender + "\n")
print("Edit saved")
print()
您的代码应该编辑成这样(在故障发生时):
希望这有帮助!:)
尝试用“a”而不是“w”模式打开文件。来自python文档:
mode最常用的值是'r'用于读取,'w'用于写入(如果文件已经存在,则将其截断),以及'a'用于附加(在某些Unix系统上,这意味着所有写入都附加到文件的末尾,而不管当前的查找位置如何)。你知道吗
相关问题 更多 >
编程相关推荐