I want to edit/update a specific value in the text file. But in my code, it just adds the value from user's input to the text file and it do not update it at all
Here is my text File. It is composed of (employee number Lastname, First name Position Department Birthdate Rate)
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;
Here is my code
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()
The contents of the changes variable is being successfully written to the end of the file (although it does not contain a terminating newline character).
However, it is unlikely to be the intended output. To write the modified data to the file in this format, it will be necessary to rewrite the file. Here is an example of how this might be done:
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]))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With