在python中如何读写txt文本文档

xiaoxiao2021-02-28  28

在python中读写TXT文本文件     使用python内置的open函数 打开txt文件     open(object,mode)函数         object:要打开文件的名称        mode:选择打开文件的方式            w:只能操作写入   r:只能读取   a:向文件追加数据             w+:可读可写     r+:可读可写  a+:可读可追加            wb+:写入进制数据        w模式打开文件,如果文件中有数据,再次写入内容,会把原来数据的覆盖掉          a模式打开文件,如果文件中有数据,再次写入内容时,不会覆盖原来的数据,而是在其后添加数据                                      r模式打开文件,做读取文件操作时,文件必须存在,否则会出现如下错误  :                                                                     open()函数,mode参数(这种不是必须要传递函数叫做缺省参数)默认就是r模式,如果只是读文件,可以不填写mode模式   ​w模式下打开文件     1.打开文件       file_handle = open ( '1.txt' , mode = 'w' )      2.向文件中写入数据      2.1.write 写入,write()函数会将字符串写入到txt文本中         file_handle.write( 'hello world ' )        一条数据写完,再次写入数据时,数据会紧跟在原来的数据后面,write()函数不会自动输出换行符,如果需要换行可以输入'\n',例:write('\n')         file_handle.write( '你好 世界\n ' )      2.2.writelines()函数 会将列表中的字符串写入文件中,但不会自动换行,如果需要换行,手动添加换行符         writelines()函数  参数 必须是一个只存放字符串的列表         file_handle.writelines([ 'hello \n ' , 'world \n ' , '你好 \n ' ])     3.关闭(保存)文件      file_handle.close() ​ r模式下打开文件     1.打开文件       file_handle = open ( '1.txt' , mode = 'r' )    2.读取文件内容(文件读取是从光标所在位置开始读取,且读取文件内容时,光标会移动到你读取得内容末尾位置)        2.1 read(int)函数,读取文件内容,参数可指定读取长度。如果指定读取长度,会按照长度去读取,不指定读取所有数据(返回字符串)         content = file_handle.read()       2.2 readline(int) 函数 默认读取文件中一行数据(返回字符串)          content = file_handle.readline()       2.3 readlines()读取所有行的数据,会把每一行的数据作为一个元素,放在列表中返回(返回列表)          contents = file_handle.readlines()        3.关闭文件      file_handle.close()        ​其他函数     1、tell()函数 返回当前文件中光标的位置       获取光标的位置       number = file_handle.tell()      2、seek()函数       第一个参数 offset 直接指定文件的光标位置,调整光标位置 offset:偏移量      第二个参数 whence  whence=0 直接移动到开始位置 whence=1 当前位置  whence=2 末尾位置  whence默认值0

     file_handle.seek(0)

下面是一个简易的学员管理系统:

import os # 添加学员函数 def add_student(): # 输入学员姓名、年龄、电话 name = input('请输入学员姓名:') age = input('请输入学员年龄:') phone = input('请输入学员电话:') # 把name、age、phone放在小列表中 student = [name, age, phone] # 把小列表添加到所有学员的大列表中 # append(object) insert(index, object) extend(iterable) print(student_list) student_list.append(student) print('******添加学员成功******') print(student_list) # 查询学员函数 def query_student(): # 1.查询所有学员 # 2.输入学员姓名查询学员 得到查询的学员的序号 print('**********学员信息列表***********') # 遍历大列表 for x in range(0, len(student_list)): # 根据x的值 从大列表中取出小列表 student = student_list[x] # 从小列表中取出姓名、年龄、电话 name = student[0] age = student[1] phone = student[2] print('序号:%s 姓名:%s 年龄:%s 电话:%s' % (x, name, age, phone)) # 修改学员函数 def update_student(): # 判断是否有学员信息,如果没有,直接结束函数的执行 if len(student_list) == 0: print('没有学员信息,无法进行修改操作!') # 强制结束函数的执行 return 下面的代码 都不会再执行了 return # 1.查询学员信息 query_student() # 2.选择要修改的学员序号 num = input('请选择要修改的学员序号:') # 3.转换为整数 num = int(num) # 4.判断选择学员序号是否在范围内 while num not in range(0, len(student_list)): # 不在范围,重新选择 num = input('没有该序号,请重选:') num = int(num) # 5.根据选择的序号取出对应的学员信息小列表 student = student_list[num] new_name = input('请输入修改后的姓名(%s):'%student[0]) new_age = input('请输入修改后的年龄(%s):'%student[1]) new_phone = input('请输入修改后的电话(%s):'%student[2]) # 6.修改小列表中的数据 student[0] = new_name student[1] = new_age student[2] = new_phone print('----修改数据完成----') # 删除学员信息 # 1.根据学员序号删除 2.删除所有学员 3.根据学员姓名删除(有同名的,把同名的都删除) def delete_student(): if len(student_list) == 0: print('没有学员信息,无法执行删除操作!') return print('1.根据学员序号删除') print('2.删除所有学员') # 获取输入的内容 并转换为整数类型 num = int(input('请选择您的操作:')) while num not in range(1, 3): num = int(input('选项错误,请重选:')) # 判断选择选项 if num == 1: # 1.展示所有学员的信息 query_student() # 2.选择删除的序号 index = int(input('请输入要删除的学员序号:')) # 3.判断选择序号是否在范围内 while index not in range(0, len(student_list)): index = int(input('没有该序号,请重选:')) # 4.删除指定索引的数据 del student_list[index] # student_list.pop(index) else: # 确认删除 rs = input('确定要删除所有信息?y(确定)/n(取消):') if rs == 'y': # 删除列表中的所有的数据 student_list.clear() else: print('删除数据操作已取消!') # 学员信息保存函数 def save_data(): file_handle = open('student_info.txt','w') for student in student_list: for info in student: file_handle.write(info) file_handle.write(' ') file_handle.write('\n') file_handle.close() # 学员信息读取函数 def read_data(): if os.path.exists('student_info.txt') == True: file_handle = open('Student.txt','r') students = file_handle.readlines() for student in students: student = student.strip('\n') list = student.split(' ') list.pop() student_list.append(list) file_handle.close() # 1.声明大列表,存放所有学员信息 student_list = [] read_data() print(student_list) # 2.while循环 while True: print('*******学员管理系统V2.0********') print('*******出品人:######## ********') print('1.添加学员') print('2.查询学员') print('3.修改学员') print('4.删除学员') print('0.退出程序') print('******************************') # 选择操作 num = input('请选择您的操作:') # 转换为整数 num = int(num) # 判断选择的选项是否在范围内 while num not in range(0, 5): # 重新选择 num = input('没有该选项,请重选:') # 把字符串类型转换整数类型 num = int(num) # 根据选择的选项执行对应的操作 if num == 1: # 调用添加学员的函数 add_student() elif num == 2: # 调用查询学员的函数 query_student() elif num == 3: # 调用修改学员的函数 update_student() elif num == 4: # 调用删除学员的函数 delete_student() else: save_data() print('程序已结束!') break

转载请注明原文地址: https://www.6miu.com/read-2500101.html

最新回复(0)