练习
1.有如下文件,a1.txt,里面的内容为:
老男孩是最好的学校,
全心全意为学生服务,
只为学生未来,不为牟利。
我说的都是真的。哈哈
分别完成以下的功能:
a,将原文件全部读出来并打印。
'''
f = open(r"D:\作业\day08\a1",mode="r",encoding="utf-8")
s = f.read()
print(s)
'''
b,在原文件后面追加一行内容:信不信由你,反正我信了。
'''
f = open(r"D:\作业\day08\a1",mode="a",encoding="utf-8")
f.write("\n信不信由你,反正我信了")
f.flflush()
f.close()
'''
c,将原文件全部读出来,并在后面添加一行内容:信不信由你,反正我信了。
'''
f=open(r"D:\作业\day08\a1" ,mode="r",encoding="utf-8")
s=f.read()
f.flflush()
f.close()
print(s+"\n信不信由你,反正我信了")
'''
d,将原文件全部清空,换成下面的内容:
每天坚持一点,
每天努力一点,
每天多思考一点,
慢慢你会发现,
你的进步越来越大。
'''
f = open(r"D:\作业\day08\a1",mode="w",encoding="utf-8")
f.write("每天坚持一点,\n每天努力一点,\n每天多思考一点,\n慢慢你会发现,\n你的进步越来越大")
f.flflush()
f.close()
'''2.有如下文件,t1.txt,里面的内容为:
葫芦娃,葫芦娃,
一根藤上七个瓜
风吹雨打,都不怕,
啦啦啦啦。
我可以算命,而且算的特别准:
上面的内容你肯定是心里默唱出来的,对不对?哈哈
分别完成下面的功能:
a,以r的模式打开原文件,利用for循环遍历文件句柄。
'''
f = open("t1.txt",mode='r',encoding="utf-8")
for line in f:
print(line,end="")
'''
b,以r的模式打开原文件,以readlines()方法读取出来,
并循环遍历 readlines(),并分析a,与b 有什么区别?
'''
f = open("t1.txt",mode='r',encoding="utf-8")
lst = f.readlines()
for i in lst:
print(i,end="")
'''
深入理解文件句柄与 readlines()结果的区别。
c,以r模式读取‘葫芦娃,’前四个字符。
'''
f = open("t1.txt",mode='r',encoding="utf-8")
s = f.read(4)
print(s)
f.flflush()
f.close()
'''
d,以r模式读取第一行内容,并去除此行前后的空格,制表符,换行符。
'''
f = open("t1.txt",mode='r',encoding="utf-8")
s = f.readline()
print(s.strip())
'''
e,以a+模式打开文件,先追加一行:‘老男孩教育’然后在从最开始将 原内容全部读取出来。'''
f = open("t1.txt",mode='a+',encoding="utf-8")
f.write("\n老男孩教育")
f.seek(0)
s = f.read()
print(s)
f.flflush()
f.close()
'''
3.文件a.txt内容:每一行内容分别为商品名字,价钱,个数。
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}......] 并计算出总价钱。
'''
dit = {}
sum = 0
lst = []
f = open(r"D:\作业\day08\3a",mode='r',encoding='utf-8')
for i in f.readlines():
i = i.strip().split(" ")
dit['name'] = i[0]
dit['price'] = i[1]
dit['amount'] = i[2]
lst.append(dit)
sum = sum + int(i[1]) * int(i[2])
print(lst)
print(sum)
'''
4.有如下文件:
alex是老男孩python发起人,创建人。
alex其实是人妖。
谁说alex是sb?
你们真逗,alex再牛逼,也掩饰不住资深屌丝的气质。
将文件中所有的alex都替换成大写的SB(文件的改的操作)。'''
import os
with open("b",mode="r",encoding="utf-8")as f,open("b副本",mode="w",encoding="utf-8")as f1:
lst=f.readlines()
for i in lst:
s=i.replace("alex","SB")
f1.write(s)
os.remove("b")
os.rename("b副本","b")
'''
5.文件a1.txt内容(选做题)
name:apple price:10 amount:3 year:2012
name:tesla price:100000 amount:1 year:2013
.......
通过代码,将其构建成这种数据类型:
[{'name':'apple','price':10,'amount':3,yar:2012},
{'name':'tesla','price':1000000,'amount':1}......]
并计算出总价钱。
'''
sum = 0
li = []
with open("5a1.txt", mode="r", encoding="utf-8") as f:
for i in f.readlines():
dic = {}
c = i.split("\n")[0].split(" ")
for j in c:
dic[j.split(':')[0]] = j.split(':')[1]
sum = sum + int(dic["price"]) * int(dic["amount"])
li.append(dic)
print(li)
print(sum)
'''
6.文件a1.txt内容(选做题)
序号 部门 人数 平均年龄 备注
1 python 30 26 单身狗
2 Linux 26 30 没对象
3 运营部 20 24 女生多
.......
通过代码,将其构建成这种数据类型:
[{'序号':'1','部门':Python,'人数':30,'平均年龄':26,'备注':'单身狗'},
......]'''
f = open("d",mode="r",encoding="utf-8")
line = f.readline()
lst = line.split()
print(lst)
lst2 = []
for lin in f:
dic = {}
lst1 = lin.split()
for i in range(len(lst1)):
dic[lst[i]] = lst1[i]
lst2.append(dic)
print(lst2)
'''
python