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