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.题目详解

点击查看详细内容

  1. import os
  2. 1-a

  3. with open('a1.txt',mode='r',encoding='utf-8') as f:

  4. s = f.read()

  5. print(s)
  6. 1-b

  7. with open('a1.txt',mode='a',encoding='utf-8') as f:

  8. f.write('\n信不信由你,反正我信了')
  9. 1-c

  10. with open('a1.txt',mode='r+',encoding='utf-8') as f:

  11. print(f.read())

  12. f.write('信不信由你,反正我信了。')
  13. 1-d

  14. with open('a1.txt',mode='w',encoding='utf-8') as f:

  15. f.write('''

  16. 每天坚持一点,

  17. 每天努力一点,

  18. 每天多思考一点,

  19. 慢慢你会发现,

  20. 你的进步越来越大。

  21. ''')
  22. 1-e 先写匹配到的内容,再正常写。也可以用替换

  23. with open('a1.txt',mode='r',encoding='utf-8') as f1,

  24. open('a1副本.txt',mode='a',encoding='utf-8') as f2:

  25. for i in f1:

  26. if i == '我说的都是真的。哈哈':

  27. f2.write("你们就信吧\n")

  28. f2.write(i)
  29. os.remove('a1.txt')

  30. os.rename('a1副本.txt','a1.txt')
  31. 2-a

  32. with open('t1.txt',mode='r+',encoding='utf-8') as f:

  33. print(f.readable())

  34. print(f.writable())
  35. 2-b

  36. with open('t1.txt',mode='r',encoding='utf-8') as f:

  37. for i in f:

  38. print(i)
  39. 2-c:和2-b的区别:2-b是逐行遍历。2-c是先全部读出来存到一个列表中。

  40. with open('t1.txt',mode='r',encoding='utf-8') as f:

  41. for i in f.readlines():

  42. print(i)
  43. 2-d

  44. with open('t1.txt',mode='r',encoding='utf-8') as f:

  45. print(f.read(4))
  46. 2-e

  47. with open('t1.txt','r',encoding='utf-8') as f:

  48. print(f.readline().strip())
  49. 2-f

  50. with open('t1.txt','r',encoding='utf-8') as f:

  51. f.seek(49)

  52. print(f.read())
  53. 2-g

  54. with open('t1.txt','a+',encoding='utf-8') as f:

  55. f.write('\n老男孩教育')

  56. f.seek(0)

  57. print(f.read())
  58. 2-h

  59. with open('t1.txt','a+',encoding='utf-8') as f:

  60. f.seek(9)

  61. f.truncate()
  62. 3

  63. name_lst = ['name','price','amount']

  64. lst = []

  65. with open('a.txt','r',encoding='utf-8') as f1:

  66. for i in f1:

  67. dic = {}

  68. lst2 = i.split()

  69. for i2 in range(len(lst2)):

  70. dic[name_lst[i2]] = lst2[i2]

  71. lst.append(dic)

  72. print(lst)
  73. suma = 0

  74. for i in lst:

  75. suma += int(i['price']) * int(i['amount'])

  76. print("总价钱:%s"%suma)
  77. with open('test1.txt','r',encoding='utf-8') as f1,

  78. open('test1副本.txt','w',encoding='utf-8') as f2:

  79. for i in f1:

  80. i = i.replace('alex','SB')

  81. f2.write(i)
  82. os.remove('test1.txt')

  83. os.rename('test1副本.txt','test1.txt')
  84. 5.拿到每一行生成一个dic

  85. lst = []

  86. with open('5-a1.txt','r',encoding='utf-8') as f:

  87. for i in f:

  88. l1 = i.split()

  89. dic = {}

  90. for i1 in l1:

  91. l2 = i1.split("
  92. day8文件操作作业详解的更多相关文章

      1. day3字符串操作作业详解
      1. 1.day3题目 1.有变量name = "aleX leNb" 完成如下操作: 1) 移除 name 变量对应的值两边的空格,并输出处理结果 2) 移除name变量左边的&quo ...

      1. c语言文件操作函数详解
      1. 一.文件操作注意点: 1 打开文件时,如果打开方式加“+”,表示该文件可以“写” ; 2 退出程序一般用exit函数,正常退出参数为0,非正常退出参数为正零值 ; 3 文件的读写操作:按字符.字符串. ...

      1. (转) unity 在移动平台中,文件操作路径详解
      1. http://www.unitymanual.com/thread-23491-1-1.html 今天,这篇文章其实是个老生常谈的问题咯,在网上类似的文章也比比皆是,在此我只是做个详细总结方便大家能够 ...

      1. unity 在移动平台中,文件操作路径详解
      1. 今天,这篇文章其实是个老生常谈的问题咯,在网上类似的文章也比比皆是,在此我只是做个详细总结方便大家能够更好.更快的掌握,当然,如有不足的地方 欢迎指正!!! 相信大家在开发过程中,难免会保存一些文件在 ...

      1. ASP文件操作(FSO)详解
      1. 实例一:写入文件 语法 object.CreateTextFile([要建立的文件],[如存在,是否替代]) <% Set fs =Server.CreateObject("Scrip ...

      1. Multipart/form-data POST文件上传详解
      1. Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form ...

      1. Multipart/form-data POST文件上传详解(转)
      1. Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form ...

      1. iOS回顾笔记(03 -- 自定义View的封装和xib文件的使用详解
      1. iOS回顾笔记(03) -- 自定义View的封装和xib文件的使用详解 iOS开发中,我们常常将一块View封装起来,以便于统一管理内部的子控件.如iOS回顾笔记(02)中的"书" ...

      1. Spring Data操作Redis详解
      1. Spring Data操作Redis详解 Redis是一种NOSQL数据库,Key-Value形式对数据进行存储,其中数据可以以内存形式存在,也可以持久化到文件系统.Spring dataRedis ...

    1. 随机推荐

        1. 关于SQL语句参数中为多个带‘,’的字符串
        1. 案例分析:画面为多分数选项,根据画面选择的分数组合=@分数,以SELECT * FROM [table_name] WHERE sore IN (@分数) 其实这不算一个复杂的问题,可能由于着急下班, ...

        1. poj 3268 Silver Cow Party (最短路算法的变换使用 【有向图的最短路应用】 )
        1. Silver Cow Party Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 13611   Accepted: 6138 ...

        1. Vim设置括号自动补全和快速跳出
        1. 一.设置括号自动补全 inoremap ' ''<ESC>i inoremap " ""<ESC>i inoremap ( ()<ESC&g ...

        1. ELK之方便的日志收集、搜索、展示工具
        1. 大家在做分部署系统开发的时候是不是经常因为查找日志而头疼,因为各服务器各应用都有自己日志,但比较分散,查找起来也比较麻烦,今天就给大家推荐一整套方便的工具ELK,ELK是Elastic公司开发的一整套 ...

        1. capsule network——CNN仅仅考虑了“有没有”的问题,没有考虑feature map的结构关系。这个结构关系包括位置,角度等。Capsule layer的输出也跟feature map的max-pooling输出不同,capsule layer的输出是一个向量,这个向量包含了位置,大小,角度等信息,这是feature map仅能输出一个值所不具备的;训练比较慢
        1. capsule network--<Dynamic Routing Between Capsules> from:https://zhuanlan.zhihu.com/p/31491520 ...

        1. 「UVA557」 Burger(概率
        1. 本题征求翻译.如果你能提供翻译或者题意简述,请 提交翻译 ,感谢你的贡献. 题目描述 PDF 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 复制 3 6 10 256 输出样例# ...

        1. Merge into使用详解( 同时执行inserts和updates操作 )
        1. Merge是一个非常有用的功能,类似于MySQL里的insert into on duplicate key. Oracle在9i引入了merge命令, 通过这个merge你能够在一个SQL语句中对一 ...

        1. Wmware Player中Linux挂载U盘
        1. 菜单(Player)中有一项是可移动设备,中选择U盘,然后选择连接(断开主机), 然后在命令行中敲入 fdisk -l 正常情况下是sda是硬盘的信息,然后将会看到一个单蹦的sdb4的信息(sdb4可 ...

        1. bzoj 4592(洛谷 4344) [Shoi2015]脑洞治疗仪——线段树上二分
        1. 题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4592 1操作就是用线段树来二分找到第一个有 k 个0的位置. 在洛谷上A了,与暴力和网上题解 ...

        1. AtCoder Grand Contest 014 D:Black and White Tree
        1. 题目传送门:https://agc014.contest.atcoder.jp/tasks/agc014_d 题目翻译 给你一棵树,每次任选一个点染色,先手染白色,后手染黑色.如果最后存在一个白色的点 ...