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之路 -- 文件操作练习的更多相关文章

  1. 百万年薪python之路 -- 文件操作

    1.文件操作: f = open("zcy.txt" , mode="r" , encoding="UTF-8") open() 打开 第一 ...

  2. Python之路----文件操作

    文件操作 1.能调用方法的一定是对象,比如数值.字符串.列表.元组.字典,甚至文件也是对象,Python中一切皆为对象. str1 = 'hello' str2 = 'world' str3 = ' ...

  3. Python之路-文件操作(py3)

    文件操作的基本步骤: 1.打开文件:f=open('filename'),with open('filename') as f 2.操作文件:增,删,改,查 3.关闭文件:f.close 打开文件 p ...

  4. python之路——文件操作

    阅读目录 初窥文件操作基本流程 文件编码 文件的打开模式 文件内的光标移动 with上下文管理 文件的修改 练习 回到顶部 初窥文件操作基本流程 计算机系统分为:计算机硬件,操作系统,应用程序三部分. ...

  5. 百万年薪python之路 -- socket粘包问题解决

    socket粘包问题解决 1. 高大上版解决粘包方式(自定制包头) 整体的流程解释 整个流程的大致解释: 我们可以把报头做成字典,字典里包含将要发送的真实数据的描述信息(大小啊之类的),然后json序 ...

  6. 百万年薪python之路 -- MySQL数据库之 MySQL行(记录)的操作(一)

    MySQL的行(记录)的操作(一) 1. 增(insert) insert into 表名 value((字段1,字段2...); # 只能增加一行记录 insert into 表名 values(字 ...

  7. 百万年薪python之路 -- MySQL数据库之 MySQL行(记录)的操作(二) -- 多表查询

    MySQL行(记录)的操作(二) -- 多表查询 数据的准备 #建表 create table department( id int, name varchar(20) ); create table ...

  8. 百万年薪python之路 -- 数据库初始

    一. 数据库初始 1. 为什么要有数据库? ​ 先来一个场景: ​ 假设现在你已经是某大型互联网公司的高级程序员,让你写一个火车票购票系统,来hold住十一期间全国的购票需求,你怎么写? 由于在同一时 ...

  9. 百万年薪python之路 -- 并发编程之 协程

    协程 一. 协程的引入 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两 ...

随机推荐

  1. git使用和操作

    git提交日志的规范 为了更规范的开发,特别是团队协同开发,对于代码托管工具的提交上都会有要求的. 作为开发者,我们一定要注重提交日志的规范性,我们要对自己写的代码负责.提交日志规范很多,最近看到了一 ...

  2. [Linux] telnet 具体到某个端口Connection refused

    可以参考这个链接:https://q.cnblogs.com/q/106337/

  3. css3不定宽高水平垂直居中

    1 justify-content:center;//子元素水平居中 2 align-items:center;//子元素垂直居中 3 display:-webkit-flex; 在父级元素上面加上上 ...

  4. APP稳定性测试

    APP稳定性测试-monkey测试     第一篇-App稳定性测试-Monkey(基本操作) 准备工作 1.首先下载好adb工具 2.使用数据线连接电脑,打开usb调试 3.使用win+R打开运行, ...

  5. .Net Core 添加 Swagger 支持

    1. NuGet  中添加 Swashbuckle.AspNetCore 2.添加 Startup 信息 将 Swagger 生成器添加到 Startup.ConfigureServices 方法中的 ...

  6. js禁止刷新的简单方法

    //禁止用F5键  这个是键盘按下时触发document.onkeydown = function() { if ( event.keyCode==116) {event.keyCode = 0; e ...

  7. MySQL数据库从复制及企业配置实践

    在实际生产中,数据的重要性不言而喻: 如果我们的数据库只有一台服务器,那么很容易产生单点故障的问题,比如这台服务器访问压力过大而没有响应或者奔溃,那么服务就不可用了,再比如这台服务器的硬盘坏了,那么整 ...

  8. 设计模式----行为型模式之观察者模式(Observer Pattern)

    下面是阅读<Head First设计模式>的笔记. 观察者模式 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新. JDK API内置机制 ...

  9. 如何编译和调试Python内核源码?

    目录 写在前面 获取源代码 源代码的组织 windows下编译CPython 调试CPython 小结 参考 博客:blog.shinelee.me | 博客园 | CSDN 写在前面 如果对Pyth ...

  10. C语言函数名以及取地址的区别和联系

    有时看到如下的代码: /*****************************/ #include <stdio.h> #include <string.h> #inclu ...