百万年薪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正在运行一个任务,会在两 ...
随机推荐
- Falsk中的Request、Response
Flask 中的Response 1.HTTPResponse('helloword') "helloword" from flask import Flask # 实例化Flas ...
- lvm创建逻辑卷技巧
公司使用的服务器都是虚拟机,是虚拟机管理员通过模板创建的. 创建的所有逻辑卷都是使用的sda盘. 而我们在部署应用时需要和系统所在盘分离.(提高磁盘读写速度,避免系统盘被占满) 以前都是先创建新的逻辑 ...
- ppt课件动手动脑实际验证
1关于double精度 源代码:public class Doublejingdu { public static void main(String[] args) { System.out.prin ...
- linux查看cpu核数和内存指令
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...
- 【SQL server基础】SQL存储过程和函数的区别
本质上没区别.只是函数有如:只能返回一个变量的限制.而存储过程可以返回多个.而函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行.执行的本质都一样. 函数限制比较多,比 ...
- Python采集VIP收费QQ音乐,一起来听周董最新的《说好不哭》,省3块不香吗?
环境: windows python3.6.5 模块: requests selenium json re urllib 环境与模块介绍完毕后,就可以来实行我们的操作了. 第1步: 通过一个解析网站: ...
- asp.net core 使用Mysql和Dapper
序曲:学习编程最好的方式就是敲代码,没有比这个更好的方法,哪怕你看了上百G的视频,都不如你自己敲几行代码更为有效.还有要记得敲完代码然后写一篇随笔来记录一下你所学所想. 大家都知道,.netcore是 ...
- jQuery鼠标滑过横向时间轴效果
jQuery鼠标滑过横向时间轴效果---效果图: jQuery鼠标滑过横向时间轴效果---全部代码: <!DOCTYPE html> <html> <head> & ...
- mysql 变量赋值的三种方法
mysql中变量不用事前申明,在用的时候直接用“@变量名”使用就可以了.第一种用法:set @num=1; 或set @num:=1; //这里要使用变量来保存数据,直接使用@num变量第二种用法:s ...
- 你应该知道的简单易用的CSS技巧
作为前端,在工作中难免会遇到关于排版的问题,以下是我整理的一些关于CSS的技巧,希望对你能有帮助. 1.每个单词的首字母大写 一般我们会用JS实现,其实CSS就可以实现. JS代码: var str ...