如何更新 Python 中的文本文件值
How to update text file value in Python
我想edit/update文本文件中的特定值。但在我的代码中,它只是将用户输入的值添加到文本文件中,根本不更新它
这是我的文本文件。它由(员工编号姓氏,名字职位部门出生日期比率)
组成
123456789, Jane, Jane, Manager, ADMIN, 1/1/2000, 1000;
332244556, Dane, John, Manager, ADMIN, 1/2/1999, 1000;
234567890, Doe, Jane, Manager, ADMIN, 1/2/1999, 1000;
这是我的代码
def updates():
employee_num = []
last_name = []
first_name = []
emp_possition=[]
emp_department=[]
emp_birthdate=[]
emp_rate = []
with open("empRecord.txt", 'r+') as files:
for info in files:
info = info.strip()
if len(info) >= 1:
lists = info.split(',')
employee_num.append(lists[0].strip())
first_name.append(lists[1].strip())
last_name.append(lists[2].strip())
emp_possition.append(lists[3].strip())
emp_department.append(lists[4].strip())
emp_birthdate.append(lists[5].strip())
emp_rate.append(lists[6].rstrip(';'))
y = input("Enter Employee number you wish to update Records ")
index = employee_num.index(y)
print('Employee', y + "'s", "Position is:", emp_possition[index])
changes = input("Enter the new Position of the employee")
#it just add the input and it does not change the text file
files.write(f"{changes}")
updates()
changes
变量的内容已成功写入文件末尾(尽管它不包含终止换行符)。
但是,这不太可能是预期的输出。要以这种格式将修改后的数据写入文件,就需要重写文件。这是如何完成此操作的示例:
new_position = input("Enter the new Position of the employee")
emp_possition[index] = new_position
files.seek(0, 0) # go back to start
files.truncate()
for index in range(len(employee_num)):
files.write("{}, {}, {}, {}, {}, {}, {};\n".format(
employee_num[index],
first_name[index],
last_name[index],
emp_possition[index],
emp_department[index],
emp_birthdate[index],
emp_rate[index]))
我想edit/update文本文件中的特定值。但在我的代码中,它只是将用户输入的值添加到文本文件中,根本不更新它
这是我的文本文件。它由(员工编号姓氏,名字职位部门出生日期比率)
组成 123456789, Jane, Jane, Manager, ADMIN, 1/1/2000, 1000;
332244556, Dane, John, Manager, ADMIN, 1/2/1999, 1000;
234567890, Doe, Jane, Manager, ADMIN, 1/2/1999, 1000;
这是我的代码
def updates():
employee_num = []
last_name = []
first_name = []
emp_possition=[]
emp_department=[]
emp_birthdate=[]
emp_rate = []
with open("empRecord.txt", 'r+') as files:
for info in files:
info = info.strip()
if len(info) >= 1:
lists = info.split(',')
employee_num.append(lists[0].strip())
first_name.append(lists[1].strip())
last_name.append(lists[2].strip())
emp_possition.append(lists[3].strip())
emp_department.append(lists[4].strip())
emp_birthdate.append(lists[5].strip())
emp_rate.append(lists[6].rstrip(';'))
y = input("Enter Employee number you wish to update Records ")
index = employee_num.index(y)
print('Employee', y + "'s", "Position is:", emp_possition[index])
changes = input("Enter the new Position of the employee")
#it just add the input and it does not change the text file
files.write(f"{changes}")
updates()
changes
变量的内容已成功写入文件末尾(尽管它不包含终止换行符)。
但是,这不太可能是预期的输出。要以这种格式将修改后的数据写入文件,就需要重写文件。这是如何完成此操作的示例:
new_position = input("Enter the new Position of the employee")
emp_possition[index] = new_position
files.seek(0, 0) # go back to start
files.truncate()
for index in range(len(employee_num)):
files.write("{}, {}, {}, {}, {}, {}, {};\n".format(
employee_num[index],
first_name[index],
last_name[index],
emp_possition[index],
emp_department[index],
emp_birthdate[index],
emp_rate[index]))