如何在Python中更新文本文件值

问题描述 投票:2回答:1

我想在文本文件中编辑更新一个特定的值,但在我的代码中,它只是将用户输入的值添加到文本文件中,根本没有更新。但在我的代码中,它只是将用户输入的值添加到文本文件中,根本没有更新。

这是我的文本文件。它是由(员工编号Lastname,名字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;

以下是我的代码

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()
python-3.x text-files key-value
1个回答
1
投票

的内容 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]))


© www.soinside.com 2019 - 2024. All rights reserved.