百万年薪python之路 -- 文件操作练习
1.有如下文件,a1.txt,里面的内容为:
老男孩是最好的学校,
全心全意为学生服务,
只为学生未来,不为牟利。
我说的都是真的。哈哈
分别完成以下的功能:
a,将原文件全部读出来并打印。
with open("a1.txt",mode="r",encoding="UTF-8") as f:
print(f.read())
b,在原文件后面追加一行内容:信不信由你,反正我信了。
with open("a1.txt",mode="a",encoding="UTF-8") as f:
f.write("信不信由你,反正我信了。")
c,将原文件全部读出来,并在后面添加一行内容:信不信由你,反正我信了。
with open("a1.txt",mode="r+",encoding="UTF-8") as f:
print(f.read())
f.write("信不信由你,反正我信了。")
d,将原文件全部清空,换成下面的内容:
每天坚持一点,
每天努力一点,
每天多思考一点,
慢慢你会发现,
你的进步越来越大。
with open("a1.txt",mode="w",encoding="UTF-8") as f:
f.write("""每天坚持一点,
每天努力一点,
每天多思考一点,
慢慢你会发现,
你的进步越来越大。
""")
2.有如下文件,t1.txt,里面的内容为:
葫芦娃,葫芦娃,
一根藤上七个瓜
风吹雨打,都不怕,
啦啦啦啦。
我可以算命,而且算的特别准:
上面的内容你肯定是心里默唱出来的,对不对?哈哈
分别完成下面的功能:
a,以r的模式打开原文件,利用for循环遍历文件句柄。
with open("t1.txt",mode="r",encoding="UTF-8") as f:
for i in f:
print(i.strip())
b,以r的模式打开原文件,以readlines()方法读取出来,并循环遍历 readlines(),并分析a,与b 有什么区别?深入理解文件句柄与 readlines()结果的区别。
with open("t1.txt",mode="r",encoding="UTF-8") as f:
fr = f.readlines()
for i in fr:
print(i.strip())
a是直接打印出来,而b是先把t1.txt里面的每一行放在一个列表里再用for循环打印出来
c,以r模式读取‘葫芦娃,’前四个字符。
with open("t1.txt",mode="r",encoding="UTF-8") as f:
print(f.read(4))
d,以r模式读取第一行内容,并去除此行前后的空格,制表符,换行符。
with open("t1.txt",mode="r",encoding="UTF-8") as f:
print(f.readline().strip())
e,以a+模式打开文件,先追加一行:‘老男孩教育’然后在从最开始将 原内容全部读取出来。
with open("t1.txt",mode="a+",encoding="UTF-8") as f:
f.write("老男孩教育")
f.seek(0)
print(f.read())
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}......] 并计算出总价钱。
lst = []
dic = {}
price_sum = 0
with open("a.txt",mode="r",encoding="UTF-8") as f:
for i in f:
i = i.strip().split(" ")
# print(i)
dic["name"] = i[0]
dic["price"] = i[1]
dic["amount"] = i[2]
dic1 = dic.copy()
lst.append(dic1)
price_sum += int(i[1]) * int(i[2])
print(price_sum)
print(lst)
4.有如下文件:
alex是老男孩python发起人,创建人。
alex其实是人妖。
谁说alex是sb?
你们真逗,alex再牛逼,也掩饰不住资深屌丝的气质。
将文件中所有的alex都替换成大写的SB(文件的改的操作)。
with open("a.txt",mode="r",encoding="UTF-8") as f:
a = f.read()
a = a.replace("alex","SB")
with open("a.txt", mode="w", encoding="UTF-8") as f1:
f1.write(a)
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,year:2012},
{'name':'tesla','price':1000000,'amount':1}......]
并计算出总价钱。
lst = []
dic = {}
price_sum = 0
with open("a1.txt","r",encoding="UTF-8") as f:
for i in f:
i = i.strip().split(" ")
# print(i)
for j in i:
j = j.split(":")
# print(j)
dic[j[0]] = j[1]
dic1 = dic.copy()
lst.append(dic1)
for k in lst:
price_sum += int(k["price"]) * int(k["amount"])
print(price_sum)
print(lst)
6.文件a1.txt内容(选做题)
序号 部门 人数 平均年龄 备注
1 python 30 26 单身狗
2 Linux 26 30 没对象
3 运营部 20 24 女生多
.......
通过代码,将其构建成这种数据类型:
[{'序号':'1','部门':Python,'人数':30,'平均年龄':26,'备注':'单身狗'},
......]
lst = []
dic = {}
with open("a1.txt","r",encoding="UTF-8") as f:
a = f.readline()
a = a.strip().split(" ")
# print(a)
for i in f:
# print(i.strip())
i = i.strip().split(" ")
# print(i)
for j in range(5):
dic[a[j]] = i[j]
dic1 = dic.copy()
lst.append(dic1)
print(lst)
百万年薪python之路 -- 文件操作练习的更多相关文章
- 百万年薪python之路 -- 文件操作
1.文件操作: f = open("zcy.txt" , mode="r" , encoding="UTF-8") open() 打开 第一 ...
- Python之路----文件操作
文件操作 1.能调用方法的一定是对象,比如数值.字符串.列表.元组.字典,甚至文件也是对象,Python中一切皆为对象. str1 = 'hello' str2 = 'world' str3 = ' ...
- Python之路-文件操作(py3)
文件操作的基本步骤: 1.打开文件:f=open('filename'),with open('filename') as f 2.操作文件:增,删,改,查 3.关闭文件:f.close 打开文件 p ...
- python之路——文件操作
阅读目录 初窥文件操作基本流程 文件编码 文件的打开模式 文件内的光标移动 with上下文管理 文件的修改 练习 回到顶部 初窥文件操作基本流程 计算机系统分为:计算机硬件,操作系统,应用程序三部分. ...
- 百万年薪python之路 -- socket粘包问题解决
socket粘包问题解决 1. 高大上版解决粘包方式(自定制包头) 整体的流程解释 整个流程的大致解释: 我们可以把报头做成字典,字典里包含将要发送的真实数据的描述信息(大小啊之类的),然后json序 ...
- 百万年薪python之路 -- MySQL数据库之 MySQL行(记录)的操作(一)
MySQL的行(记录)的操作(一) 1. 增(insert) insert into 表名 value((字段1,字段2...); # 只能增加一行记录 insert into 表名 values(字 ...
- 百万年薪python之路 -- MySQL数据库之 MySQL行(记录)的操作(二) -- 多表查询
MySQL行(记录)的操作(二) -- 多表查询 数据的准备 #建表 create table department( id int, name varchar(20) ); create table ...
- 百万年薪python之路 -- 数据库初始
一. 数据库初始 1. 为什么要有数据库? 先来一个场景: 假设现在你已经是某大型互联网公司的高级程序员,让你写一个火车票购票系统,来hold住十一期间全国的购票需求,你怎么写? 由于在同一时 ...
- 百万年薪python之路 -- 并发编程之 协程
协程 一. 协程的引入 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两 ...
随机推荐
- @RequestMapping 用法详解之地址映射(转)
这段时间项目中用到了RESTful模式来开发程序,但是当用POST.PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没有加任何注解),查看了提交方式为application/js ...
- 容器时代的持续交付工具---Drone:Drone介绍与安装
Drone:Drone is a Container-Native, Continuous Delivery Platform. 官方给的定义,从上面的定义可以得出两个关键点: 1,Container ...
- Linux下一键安装包的基础上安装SVN及实现nginx web同步更新
Linux下一键安装包的基础上安装SVN及实现nginx web同步更新 一.安装 1.查看是否安装cvs rpm -qa | grep subversion 2.安装 yum install sub ...
- 让tomcat使用指定JDK
一,前言 我们都知道,tomcat启动前需要配置JDK环境变量,如果没有配置JDK的环境变量,那么tomcat启动的时候就会报错,也就是无法启动. 但是在我们的工作或者学习过程中,有的时候会出现tom ...
- 视频监控安防平台-GB28181-2016版-移动位置订阅
视频监控安防平台-GB28181-2016版-移动位置订阅 郑重声明: 本位来自 CSDN博主「沉睡的思绪」,查看原文,请点击下面链接,原文链接:https://blog.csdn.net/songx ...
- SpringCloud搭建注册中心与服务注册
上一篇文章<微服务注册中心原理,看这篇就够了!>介绍了注册中心的概念和原理,本文将介绍下利用Eureka搭建中心并注册服务到注册中心的过程. 本文目录 一.Eureka介绍二.搭建注册中心 ...
- Dubbo学习系列之九(Shiro+JWT权限管理)
村长让小王给村里各系统来一套SSO方案做整合,隔壁的陈家村流行使用Session+认证中心方法,但小王想尝试点新鲜的,于是想到了JWT方案,那JWT是啥呢?JavaWebToken简称JWT,就是一个 ...
- VMware CentOS7 安装
一.软硬件准备 作者:小啊博 QQ:762641008 转载请声明:https://www.cnblogs.com/-bobo 1.准备Centos7镜像 软件:推荐使用VMwear,我用的是VMwe ...
- 非对称加密openssl协议在php7实践
据网上资料,RSA加密算法是一种非对称加密算法.在公开密钥加密和电子商务中RSA被广泛使用.RSA是1977年由罗纳德·李维斯特(RON RIVEST).阿迪·萨莫尔(ADI SHAMIR)和伦纳德· ...
- F#周报2019年第40期
新闻 将项目成熟度重新考虑为一个社区过程 介绍.NET Core Windows Form设计器预览1 F# 4.7可以预览新语言特性与语法 视频及幻灯片 DotnetConf2019展示 .NET设 ...