python學習-day6_作業(文件操作)

學習視頻地址: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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章