4道Python基础文件操作函数 练习题
生活随笔
收集整理的這篇文章主要介紹了
4道Python基础文件操作函数 练习题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.利用b模式,編寫一個cp工具,要求如下:
既可以拷貝文本又可以拷貝視頻,圖片等文件
用戶一旦參數錯誤,打印命令的正確使用方法,如usage: cp source_file target_file
提示:可以用import sys,然后用sys.argv獲取腳本后面跟的參數
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' # cp工具 import sys if len(sys.argv) != 3:print("usage: cp source_file target_file")sys.exit() else:source_file, target_file = sys.argv[1], sys.argv[2]with open(source_file,"rb") as read_f,open(target_file,"wb") as write_f:for line in read_f:write_f.write(line)二.Python實現 tail -f 功能
#tail -f工具 import sys,time if len(sys.argv) != 2:print("usage: tail file_name")sys.exit() else:file_name = sys.argv[1]with open(file_name,'rb') as f:f.seek(0,2) # 每次都從文件末尾開始讀while True:line = f.readline()if line:print(line.decode('utf-8'),end='') # 讀取的每一行都去掉行尾的換行符time.sleep(1)有待優化,每次打開應該顯示最后10行。
三.文件的修改
文件的數據是存放于硬盤上的,因而只存在覆蓋、不存在修改這么一說,我們平時看到的修改文件,都是模擬出來的效果,具體的說有兩種實現方式:
- 方式一:將硬盤存放的該文件的內容全部加載到內存,在內存中是可以修改的,修改完畢后,再由內存覆蓋到硬盤(word,vim,nodpad++等編輯器)
- 方式二:將硬盤存放的該文件的內容一行一行地讀入內存,修改完畢就寫入新文件,最后用新文件覆蓋源文件
三.全局替換程序:
- 寫一個腳本,允許用戶按以下方式執行時,即可以對指定文件內容進行全局替換
- 替換完畢后打印替換了多少處內容
四.模擬登陸:
- 用戶輸入帳號密碼進行登陸
- 用戶信息保存在文件內
- 用戶密碼輸入錯誤三次后鎖定用戶,下次再登錄,檢測到是這個用戶也登錄不了
user_list.txt
wss:123:1 alex:456:1 jay:789:1 import getpass import osuser_dict = {} with open("user_list.txt", "r", encoding="utf-8") as user_list_flie:for line in user_list_flie.readlines():user_list = line.strip().split(":")# print(user_list)_user = user_list[0].strip()_pwd = user_list[1].strip()_lockaccount = int(user_list[2].strip())user_dict[_user] = {"user": _user, "pwd": _pwd, "lockaccount": _lockaccount}# print(user_dict[_username])# print(user_dict)exit_flag = False count = 0 while count < 3 and not exit_flag:user = input('\n請輸入用戶名:')if user not in user_dict:count += 1print("\n用戶名錯誤")elif user_dict[user]["lockaccount"] > 0:print("\n用戶已被鎖定,請聯系管理員解鎖后重新嘗試")breakelse:while count < 3 and not exit_flag:pwd = getpass.getpass('\n請輸入密碼:')# pwd = input('\n請輸入密碼:')if pwd == user_dict[user]["pwd"]:print('\n歡迎登陸')print('..........')exit_flag = Trueelse:count += 1print('\n密碼錯誤')continueif count >= 3: # 嘗試次數大于等于3時鎖定用戶if user == "":print("\n您輸入的錯誤次數過多,且用戶為空")elif user not in user_dict:print("\n您輸入的錯誤次數過多,且用戶 %s 不存在" % user)else:user_dict[user]["lockaccount"] += 1# print(user_dict[user]["lockaccount"])with open("user_list.txt", "r", encoding="utf-8") as user_list_file, open("use_list.txt.swap", "w",encoding="utf-8") as new_user_list_file:for new_line in user_dict:new_user_list = [str(user_dict[new_line]["user"]), str(user_dict[new_line]["pwd"]),str(user_dict[new_line]["lockaccount"])]# print(new_user_list)user_str = ":".join(new_user_list)print(user_str)new_user_list_file.write(user_str + "\n")os.remove("user_list.txt")os.rename("use_list.txt.swap", "user_list.txt")print("\n您輸入的錯誤次數過多,%s 已經被鎖定" % user)總結
以上是生活随笔為你收集整理的4道Python基础文件操作函数 练习题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 12道Python基础字符编码数据类型练
- 下一篇: Python必学内容:格式化输出的三种方