學習視頻地址:https://www.bilibili.com/video/BV1SE411N7Hi?p=43 作業地址:https://gitee.com/old_boy_education_python_28/teaching_plan/issues/I168BC 以下內容僅供自己學習使用 #!/usr/bin/env python # -*- coding:utf-8 -*- # 1.有如下文件,a1.txt,裏面的內容爲: # # 老男孩是最好的學校, # 全心全意爲學生服務, # 只爲學生未來,不爲牟利。 # 我說的都是真的。哈哈 # 分別完成以下的功能: # a,將原文件全部讀出來並打印。 # with open("a1.txt","r",encoding="utf-8") as f: # print(f.read()) # b,在原文件後面追加一行內容:信不信由你,反正我信了。 # with open("a1.txt","a+",encoding="utf-8") as f: # f.write("信不信由你,反正我信了") # c,將原文件全部清空,換成下面的內容: # # 每天堅持一點, # 每天努力一點, # 每天多思考一點, # 慢慢你會發現, # 你的進步越來越大。 # import os # with open("a2.txt","w",encoding="utf-8")as f1: # str='''每天堅持一點, # 每天努力一點, # 每天多思考一點, # 慢慢你會發現, # 你的進步越來越大。''' # f1.write(str) # os.rename("a1.txt","a1.txt.bak") # os.rename("a2.txt","a1.txt") # 2.有如下文件,t1.txt,裏面的內容爲: # # 葫蘆娃,葫蘆娃, # 一根藤上七個瓜 # 風吹雨打,都不怕, # 啦啦啦啦。 # 我可以算命,而且算的特別準: # 上面的內容你肯定是心裏默唱出來的,對不對?哈哈 # 分別完成下面的功能: # a,以r的模式打開原文件,利用for循環遍歷文件句柄。 # with open("t1.txt","r",encoding="utf-8")as f: # for i in f: # print (i) # b,以r模式讀取‘葫蘆娃,’前四個字符。 # f.seek(0) # print(f.read(4)) # c,以r模式讀取第一行內容,並去除此行前後的空格,製表符,換行符。 # f.seek(0) # i=f.readline() # print(i.strip()) # d,以a+模式打開文件,先追加一行:‘老男孩教育’然後在從最開始將原內容全部讀取出來。 # with open("t1.txt","a+",encoding="utf-8")as f: # f.write("老男孩教育") # f.seek(0) # print(f.read()) # # 3.文件a.txt內容:每一行內容分別爲商品名字,價錢,個數。 (20分鐘) # # apple 10 3 # tesla 100000 1 # mac 3000 2 # lenovo 30000 3 # chicken 10 3 # 通過代碼,將其構建成這種數據類型:[{'name':'apple','price':10,'amount':3},{'name':'tesla','price':1000000,'amount':1}......] 並計算出總價錢。 # l=list() # with open("a.txt","r",encoding="utf-8")as f: # for i in f: # j=i.strip().split(" ") # p = dict() # p.setdefault("name:",j[0]) # p.setdefault("price:",j[1]) # p.setdefault("amount:",j[2]) # l.append(p) # print(l) # sum=0 # for i in l: # print(i) # sum=sum+int(i["price:"]) # print ("sum:",sum) #--------------------------------老師這麼寫 # f=open("a.txt","r",encoding="utf-8") # # lst=[] # for i in f: # dic = {} # a,b,c=i.split() # dic["name"]=a # dic["price"]=b # dic["amout"]=c # #或者 # dic={"name":a,"price":b,"amount":c} # lst.append(dic)#append 的是dic的內存地址,如果沒有每個循環新建dic,則所有的內容都一樣 # print(lst) # 4.有如下文件: # # alex是老男孩python發起人,創建人。 # alex其實是人妖。 # 誰說alex是sb? # 你們真逗,alex再牛逼,也掩飾不住資深屌絲的氣質。 # 將文件中所有的alex都替換成大寫的SB(文件的改的操作)。 # import os # with open("b.txt","r",encoding="utf-8")as f,\ # open("c.txt","w",encoding="utf-8")as f1: # str=f.read() # str=str.replace("alex","sb") # f1.write(str) # os.rename("b.txt","b.txt.bak") # os.rename("c.txt","b.txt") # # 5.文件a2.txt內容,建議寫的支持擴展 (35分鐘) # # name:apple price:10 amount:3 year:2012 # name:tesla price:100000 amount:1 year:2013 # 通過代碼,將其構建成這種數據類型: # [{'name':'apple','price':10,'amount':3,year:2012}, # {'name':'tesla','price':1000000,'amount':1}] # 並計算出總價錢。 # lst=[] with open("a2.txt","r",encoding="utf-8")as f: for i in f: dic={} for j in i.split(): a,b=j.split(":") dic.setdefault(a,b) lst.append(dic) print(lst) # 6.文件a1.txt內容,建議寫的支持擴展 (40分鐘) # str='''序號 部門 人數 平均年齡 備註 1 python 30 26 單身狗 2 Linux 26 30 沒對象 3 運營部 20 24 女生多 ''' # with open("a1.txt","w",encoding="utf-8")as f: # f.write(str) # 通過代碼,將其構建成這種數據類型: # [{'序號':'1','部門':Python,'人數':30,'平均年齡':26,'備註':'單身狗'}, # ......] l=[] with open("a1.txt","r",encoding="utf-8")as f: f.readline() for i in f: p=dict() i=i.split()#此處不能用i.split(" "),不能識別連續多個空格 p["序號"]=i[0] p["部門"]=i[1] p["人數"]=i[2] p["平均年齡"]=i[3] p["備註"]=i[4] l.append(p) print(l) #---------------------老師例子 f=open("a1.txt","r",encoding="utf-8") lst=[] f1=f.readline() a,b,c,d,e=f1.split() for i in f: a1,b1,c1,d1,e1=i.split() dic={a:a1,b:b1,c:c1,d:d1,e:e1} lst.append(dic) print(lst)
python學習-day6_作業(文件操作)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.