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

老男孩是最好的培训机构,
全心全意为学生服务,
只为学生未来,不为牟利。
我说的都是真的。哈哈

分别完成以下的功能:

将原文件全部读出来并打印。
with open('a1.txt','r') as f:
    for line in f:
        print(line)
在原文件后面追加一行内容:信不信由你,反正我信了。
with open('a1.txt','a') as f:
    f.write('信不信由你,反正我信了。')
将原文件全部读出来,并在后面添加一行内容:信不信由你,反正我信了。
with open('a1.txt','r') as f:
    f.read()+'\n信不信由你,反正我信了。'
将原文件全部清空,换成下面的内容:
##############
每天坚持一点,
每天努力一点,
每天多思考一点,
慢慢你会发现,
你的进步越来越大。
##############
with open('a1.txt','w') as f:
    f.write('每天坚持一点,\n每天努力一点,\n每天多思考一点,\n慢慢你会发现,\n你的进步越来越大。')
将原文件内容全部读取出来,并在‘我说的都是真的。哈哈’这一行的前面加一行,‘你们就信吧~’然后将更改之后的新内容,写入到一个新文件:a.txt。
with open('a1.txt','r') as f:
    a = f.readlines()
with open('a.txt','w') as f:
    a.insert(3,'你们就信吧~\n')
    f.write(''.join(a))

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

葫芦娃,葫芦娃,
一根藤上七个瓜
风吹雨打,都不怕,
啦啦啦啦。
我可以算命,而且算的特别准:
上面的内容你肯定是心里默唱出来的,对不对?哈哈

分别完成下面的功能:

以r+的模式打开原文件,判断原文件是否可读,是否可写。
with open('t1.txt','r+') as f:
    print(f.readable())
    print(f.writable())
以r的模式打开原文件,利用for循环遍历文件句柄。
with open('t1.txt','r') as f:
    for i in f:
        print(i)
以r的模式打开原文件,以readlines()方法读取出来,并循环遍历readlines(),
并分析题二,与题三有什么区别?深入理解文件句柄与readlines()结果的区别。
with open('t1.txt','r') as f:
    s = f.readlines()
for i in s:
    print(i)
    题二的效率高,防止内存溢出。
    题三的效率低,内存容易溢出。
以r模式读取‘葫芦娃,’前四个字符。
with open('t1.txt','r') as f:
    print(f.read(4))
以r模式读取第一行内容,并去除此行前后的空格,制表符,换行符。
with open('t1.txt','r') as f:
    f.readline().strip()
以r模式打开文件,从‘风吹雨打.....’开始读取,一直读到最后。
with open('t1.txt','r') as f:
    f.readline()
    f.readline()
    for line in f:
        print(line)
以a+模式打开文件,先追加一行:‘老男孩教育’然后在从最开始将原内容全部读取出来。
with open('t1.txt','a+') as f:
    f.write('老男孩教育')
    f.seek(0,0)
    f.read()
截断原文件,留下内容:‘葫芦娃’
with open('t1.txt','r+') as f:
    f.truncate(9)

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 = list()
sum = 0
with open('a.txt','r') as f:
    for line in f.readlines():
        dic = dict()
        dic['name']=line.split()[0]
        dic['price']=line.split()[1]
        dic['amount']=line.split()[2]
        lst.append(dic)
        sum+=int(line.split()[1])
print(lst)
print('总价钱%s' % sum)

4,有如下文件:

alex是老男孩python发起人,创建人。
alex其实是人妖。
谁说alex是sb?
你们真逗,alex再牛逼,也掩饰不住资深屌丝的气质。
将文件中所有的alex都替换成大写的SB(文件的改的操作)。
import os
with open('a.txt','r') as f1 ,\
        open('a1.txt','w') as f2:
    a = f1.read()
    a1 = a.replace('alex','SB')
    f2.write(a1)
os.rename('a1.txt','a.txt')

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}......]
并计算出总价钱。
sum = 0
lst = list()
with open('a.txt','r') as f:
    for line in f.readlines():
        dic = dict()
        for item in line.split():
            dic[item.split(':')[0]]=item.split(':')[1]
            if item.split(':')[0] == 'price':
                sum+=int(item.split(':')[1])
                lst.append(dic)
print(lst)
print('总价钱%s' % sum)

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

序号     部门      人数      平均年龄      备注
1       python    30         26         单身狗
2       Linux     26         30         没对象
3       运营部     20         24         女生多

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

[{'序号':'1','部门':Python,'人数':30,'平均年龄':26,'备注':'单身狗'},...]
lst = list()
with open('a.txt','r') as f:
    title=f.readline().split()
    for line in f.readlines():
        dic = dict()
        line=line.split()
        for num in range(len(title)):
            dic[title[num]]=line[num]
        lst.append(dic)
print(lst)

明日默写:

就是第4题的代码(课上讲过)。

Day8作业及默写的更多相关文章

  1. Day29作业及默写

    作业: 1\ 默写 黏包协议 2\ 上传大文件(文件\视频\图片) 3\ 和你的同桌调通 从你的计算机上传一个视频到你同桌的电脑上 4\ 进阶 : 带上登录 Server #Server #!/usr ...

  2. Day20作业及默写

    1.请使用C3算法计算出链接图中的继承顺序-Link 一 graph BT id1[A]-->id2[B] id2[B]-->id6[F] id6[F]-->id7[G] id1[A ...

  3. Day11作业及默写

    1.写函数,传入n个数,返回字典{'max':最大值,'min':最小值} 例如:min_max(2,5,7,8,4) 返回:{'max':8,'min':2}(此题用到max(),min()内置函数 ...

  4. Day10作业及默写

    1,继续整理函数相关知识点,写博客. 2,写函数,接收n个数字,求这些参数数字的和.(动态传参) def func(*number): sum=0 for num in number: sum+=nu ...

  5. Day14作业及默写

    1.整理今天所学内容,整理知识点,整理博客. pass 2.画好流程图. pass 3.都完成的做一下作业(下面题都是用内置函数或者和匿名函数结合做出): pass 4.用map来处理字符串列表,把列 ...

  6. Day13作业及默写

    1. 整理今天的博客,写课上代码,整理流程图. 博客链接--博客园 2. 写一个函数完成三次登陆功能: 用户的用户名密码从一个文件register中取出. register文件包含多个用户名,密码,用 ...

  7. Day9作业及默写

    1,整理函数相关知识点,写博客. 2,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者. def func(obj): return obj[1::2] 3, ...

  8. Day7作业及默写

    1. 判断一个数是否是水仙花数, 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数. 例如: 153 = 1**3 + 5**3 + 3**3 InputNu ...

  9. Day6作业及默写

    1.使⽤循环打印以下效果: 1: * ** *** **** ***** for num in range(1,6): print('*' * num) 2: ***** **** *** ** * ...

随机推荐

  1. 『MXNet』第八弹_数据处理API_上

    一.Gluon数据加载 下面的两个dataset处理类一般会成对出现,两个都可做预处理,但是由于后面还可能用到原始图片,.ImageFolderDataset不加预处理的话可以满足,所以建议在.Dat ...

  2. python-day91--JS实现的ajax

    一.AJAX核心(XMLHttpRequest) 其实AJAX就是在Javascript中多添加了一个对象:XMLHttpRequest对象.所有的异步交互都是使用XMLHttpServlet对象完成 ...

  3. Oracle11g温习-第十九章:审计(audit)

    2013年4月27日 星期六 10:52 1.审计的功能:监控用户在database 的 action (操作) 2.审计分类 1) session :在同一个session,相同的语句只产生一个审计 ...

  4. LeetCode 958. 二叉树的完全性检验

    958. 二叉树的完全性检验  显示英文描述 我的提交返回竞赛   用户通过次数119 用户尝试次数157 通过次数123 提交次数378 题目难度Medium 给定一个二叉树,确定它是否是一个完全二 ...

  5. Buffer和Stream

    Buffer JavaScript 语言自身只有字符串数据类型,没有二进制数据类型.但在处理像TCP流或文件流时,必须使用到二进制数据. 因此在 Node.js中,定义了一个 Buffer 类,该类用 ...

  6. Fiddler 抓包工具总结【转载】

    原博主连接在文章底部 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存等操作.也可以用来检测网络安全.反正好处多多,举之不尽呀!当年学习的时候也蛮费劲, ...

  7. 十四、MVC的WEB框架(Structs2)

    一.Structs2中的Session 1.一个是传统的servlet包下的HttpSession,一个是Structs2中自己定义的Session Servlet下的Session获取方法:Serv ...

  8. noip2016组合数问题

    题目描述 组合数 Cnm​ 表示的是从 n 个物品中选出 m 个物品的方案数.举个例子,从 (1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3) 这三种选择方法.根据组合数的 ...

  9. Java 8 默认方法(Default Methods)

    Java 8 默认方法(Default Methods) Posted by Ebn Zhang on December 20, 2015 Java 8 引入了新的语言特性——默认方法(Default ...

  10. hashlib 库

    hashlib 库 hash 是一种算法,用来接收一系列数据,经过计算后得到一个hash值 hash值的三大特征: 1. 如果传入的数据一样,得到的hash值一样 2. 只要采用的hash算法固定,无 ...