day8文件操作作业详解

时间:2024-04-23 00:05:08

1.day8题目

1,有如下文件,a1.txt,里面的内容为:

老男孩是最好的培训机构,

全心全意为学生服务,

只为学生未来,不为牟利。

我说的都是真的。哈哈

分别完成以下的功能:

a,将原文件全部读出来并打印。

b,在原文件后面追加一行内容:信不信由你,反正我信了。

c,将原文件全部读出来,并在后面添加一行内容:信不信由你,反正我信了。

d,将原文件全部清空,换成下面的内容:

每天坚持一点,

每天努力一点,

每天多思考一点,

慢慢你会发现,

你的进步越来越大。

e,将原文件内容全部读取出来,并在‘我说的都是真的。哈哈’这一行的前面加一行,‘你们就信吧~’然后将更改之后的新内容,写入到一个新文件:a1.txt。

2,有如下文件,t1.txt,里面的内容为:

葫芦娃,葫芦娃,

一根藤上七个瓜

风吹雨打,都不怕,

啦啦啦啦。

我可以算命,而且算的特别准:

上面的内容你肯定是心里默唱出来的,对不对?哈哈

分别完成下面的功能:

a,以r+的模式打开原文件,判断原文件是否可读,是否可写。

b,以r的模式打开原文件,利用for循环遍历文件句柄。

c,以r的模式打开原文件,以readlines()方法读取出来,并循环遍历 readlines(),并分析b,与c 有什么区别?深入理解文件句柄与 readlines()结果的区别。

d,以r模式读取‘葫芦娃,’前四个字符。

e,以r模式读取第一行内容,并去除此行前后的空格,制表符,换行符。

f,以r模式打开文件,从‘风吹雨打.....’开始读取,一直读到最后。

g,以a+模式打开文件,先追加一行:‘老男孩教育’然后在从最开始将 原内容全部读取出来。

h,截断原文件,留下内容:‘葫芦娃’

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}......] 并计算出总价钱。

4,有如下文件:

alex是老男孩python发起人,创建人。

alex其实是人妖。

谁说alex是sb?

你们真逗,alex再牛逼,也掩饰不住资深屌丝的气质。

将文件中所有的alex都替换成大写的SB(文件的改的操作)。

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},

{'name':'tesla','price':1000000,'amount':1}......]

并计算出总价钱。

6,文件a1.txt内容(升级题)

序号 部门 人数 平均年龄 备注

1 python 30 26 单身狗

2 Linux 26 30 没对象

3 运营部 20 24 女生多

.......

通过代码,将其构建成这种数据类型:

[{'序号':'1','部门':Python,'人数':30,'平均年龄':26,'备注':'单身狗'},

......]

2.题目详解

点击查看详细内容

import os 1-a

with open('a1.txt',mode='r',encoding='utf-8') as f:

s = f.read()

print(s) 1-b

with open('a1.txt',mode='a',encoding='utf-8') as f:

f.write('\n信不信由你,反正我信了') 1-c

with open('a1.txt',mode='r+',encoding='utf-8') as f:

print(f.read())

f.write('信不信由你,反正我信了。') 1-d

with open('a1.txt',mode='w',encoding='utf-8') as f:

f.write('''

每天坚持一点,

每天努力一点,

每天多思考一点,

慢慢你会发现,

你的进步越来越大。

''') 1-e: 先写匹配到的内容,再正常写。也可以用替换

with open('a1.txt',mode='r',encoding='utf-8') as f1,

open('a1副本.txt',mode='a',encoding='utf-8') as f2:

for i in f1:

if i == '我说的都是真的。哈哈':

f2.write("你们就信吧\n")

f2.write(i) os.remove('a1.txt')

os.rename('a1副本.txt','a1.txt') 2-a

with open('t1.txt',mode='r+',encoding='utf-8') as f:

print(f.readable())

print(f.writable()) 2-b

with open('t1.txt',mode='r',encoding='utf-8') as f:

for i in f:

print(i) 2-c:和2-b的区别:2-b是逐行遍历。2-c是先全部读出来存到一个列表中。

with open('t1.txt',mode='r',encoding='utf-8') as f:

for i in f.readlines():

print(i) 2-d

with open('t1.txt',mode='r',encoding='utf-8') as f:

print(f.read(4)) 2-e

with open('t1.txt','r',encoding='utf-8') as f:

print(f.readline().strip()) 2-f

with open('t1.txt','r',encoding='utf-8') as f:

f.seek(49)

print(f.read()) 2-g

with open('t1.txt','a+',encoding='utf-8') as f:

f.write('\n老男孩教育')

f.seek(0)

print(f.read()) 2-h

with open('t1.txt','a+',encoding='utf-8') as f:

f.seek(9)

f.truncate() 3

name_lst = ['name','price','amount']

lst = []

with open('a.txt','r',encoding='utf-8') as f1:

for i in f1:

dic = {}

lst2 = i.split()

for i2 in range(len(lst2)):

dic[name_lst[i2]] = lst2[i2]

lst.append(dic)

print(lst) suma = 0

for i in lst:

suma += int(i['price']) * int(i['amount'])

print("总价钱:%s"%suma) with open('test1.txt','r',encoding='utf-8') as f1,

open('test1副本.txt','w',encoding='utf-8') as f2:

for i in f1:

i = i.replace('alex','SB')

f2.write(i) os.remove('test1.txt')

os.rename('test1副本.txt','test1.txt') 5.拿到每一行生成一个dic

lst = []

with open('5-a1.txt','r',encoding='utf-8') as f:

for i in f:

l1 = i.split()

dic = {}

for i1 in l1:

l2 = i1.split("