1. 程式人生 > >在python中如何讀寫txt文字文件

在python中如何讀寫txt文字文件

    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