day8文件操作作业详解
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("
day8文件操作作业详解的更多相关文章
- day3字符串操作作业详解
1.day3题目 1.有变量name = "aleX leNb" 完成如下操作: 1) 移除 name 变量对应的值两边的空格,并输出处理结果 2) 移除name变量左边的&quo ...
- c语言文件操作函数详解
一.文件操作注意点: 1 打开文件时,如果打开方式加“+”,表示该文件可以“写” ; 2 退出程序一般用exit函数,正常退出参数为0,非正常退出参数为正零值 ; 3 文件的读写操作:按字符.字符串. ...
- (转) unity 在移动平台中,文件操作路径详解
http://www.unitymanual.com/thread-23491-1-1.html 今天,这篇文章其实是个老生常谈的问题咯,在网上类似的文章也比比皆是,在此我只是做个详细总结方便大家能够 ...
- unity 在移动平台中,文件操作路径详解
今天,这篇文章其实是个老生常谈的问题咯,在网上类似的文章也比比皆是,在此我只是做个详细总结方便大家能够更好.更快的掌握,当然,如有不足的地方 欢迎指正!!! 相信大家在开发过程中,难免会保存一些文件在 ...
- ASP文件操作(FSO)详解
实例一:写入文件 语法 object.CreateTextFile([要建立的文件],[如存在,是否替代]) <% Set fs =Server.CreateObject("Scrip ...
- Multipart/form-data POST文件上传详解
Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form ...
- Multipart/form-data POST文件上传详解(转)
Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form ...
- iOS回顾笔记(03) -- 自定义View的封装和xib文件的使用详解
iOS回顾笔记(03) -- 自定义View的封装和xib文件的使用详解 iOS开发中,我们常常将一块View封装起来,以便于统一管理内部的子控件.如iOS回顾笔记(02)中的"书" ...
- Spring Data操作Redis详解
Spring Data操作Redis详解 Redis是一种NOSQL数据库,Key-Value形式对数据进行存储,其中数据可以以内存形式存在,也可以持久化到文件系统.Spring data对Redis ...
随机推荐
- hihocoder 在线测试 补提交卡 (Google)
题目1 : 补提交卡 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hihoCoder上提交一个程序.100天过去 ...
- 版本名称SNAPSHOT、alpha、beta、release、GA含义
Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用.Beta:也是测试版,这个阶段的版本会一直加入新的功能.在Alpha版之后推出.RC:(Release Candida ...
- python返回列表中指定内容的索引
import numpy as npa=[2,10,2,3,4,10,10]ans = np.where(np.array(a)==10)print(ans) 结果是:(array([1, 5, 6] ...
- python基础-正则2
正则函数 Python提供re模块,包含所有正则表达式的功能 由于python的字符串本身也有\转义,所以需要注意: s = "ABC\\-001" 对应的正则表达式应为:'ABC ...
- swoole+nginx反向代理
nginx配置: server { listen 80; server_name www.swoole.com; root /data/wwwroot/www.swoole.com; location ...
- (转)[sh] <defunct>进程
我也碰到僵尸进程了,必须通过关闭僵尸进程的父进程或者重启解决. 来自:http://jerrybear.blog.51cto.com/629421/387846 今日发现服务器上多了一些名称为[sh] ...
- poj3013Big Chrismas Tree——树转换spfa
题目:http://poj.org/problem?id=3013 看似生成树,实则最短路,可以将题意转化为点权*根到此点的边权和(最短路使其最小). 代码如下: #include<iostre ...
- Zigbee协议栈--Z-Stack的使用
使用方法简介:一般情况下用户只需要额外添加三个文件就可以完成一个项目.一个是主文件,存放具体的任务事件处理函数:一个是这个主文件的头文件:另外一个是以Osal开头的操作系统接口文件,是专门存放任务处理 ...
- bzoj4453
单调栈+set+后缀数组 一道奇妙的题 这道题如果对于每个询问$r$是固定的,那么就很简单了,可惜并不是 由于r会变化,那么对于两个子串$[i...r],[j...r]$,他们的大小关系随着r的变化也 ...
- ubuntu在recovery模式下更改用户密码
http://www.jb51.net/os/Ubuntu/164636.html 1, restart 2, Hold down shift key / press and hold 3, sele ...