2020.09.22星期二  预科班D12

学习内容:

一、修改文件的两种方式

1、方案一

  思路:(1)先以r形式打开源文件

        (2)将源文件内容一次性读入内存中,在内存中修改完毕

        (3)以w形式打开源文件(源文件中内容被清空)

        (4)将内存中的文件写入源文件中

with open("a.txt", mode = 'r', encoding = 'utf-8') as f:
data = f.read()
res = data.replace('jack', 'JACK')
with open("a.txt", mode = 'w', encoding = 'utf-8') as f1:
f1.write(res)

2、方案二

  思路:(1)先以r形式打开源文件,再以w形式打开新的文件

     (2)每从源文件中读取一行内容就立即修改,然后将修改的内容写入新文件中

     (3)删除源文件,将新文件重命名为源文件名

import os

with open("a.txt", mode = "r", encoding = "utf-8") as src_f, \
with open(".a.txt.swp", mode = "w", encoding = "utf-8") as dst_f:
for line in src_l:
res = line.replace("ccc", "CCC")
dst_f.write(res)
os.remove("a.txt")
os.rename(".a.txt.swp", "a.txt")

二、文件处理

1、a模式打开文件直接在文件末尾输入

with open(r"H:\PycharmProjects\test\a.txt", mode = 'a', encoding = 'utf-8') as f:
f.write("111\n")
f.write("222\n")
f.write("333\n") with open(r"H:\PycharmProjects\test\a.txt", mode = 'a', encoding = 'ytf-8') as f:
f.write("444\n")

2、w模式打开文件后先将源文件内容清空再输入(命令未结束前也是一直往后写)

with open(r"H:\PycharmProjects\test\a.txt", mode = 'w', encoding = "utf-8") as f:
f.write("111\n")
f.write("222\n")
f.write("333\n")

with open(r"H:\PycharmProjects\test\a.txt", mode = 'w', encoding = "utf-8") as f:
f.write("444\n")

三、字符编码

字符==========编码==========》数字

字符《========解码===========数字

字符编码表:字符与数字的对应关系

ASCⅡ表:英文字符与数字的关系

      用1Bytes对应一个英文字符

GBK表:英文字符与中文字符跟数字的对应关系

      用2Bytes对应一个字符

Shift-JIS:英文字符与日文字符跟数字的对应关系

Euc-KR:英文字符与韩文字符跟数字的对应关系

utf-8:"万国字符与数字的关系"

    1Bytes=====》1个英文字符

    3Bytes=====》1个中文字符

四、处理文本文件

with open('d.txt',mode='wt',encoding='utf-8') as f:
f.write("哈哈哈哈") with open('d.txt', mode='rt', encoding='utf-8') as f:
print(f.read())

五、处理非文本文件

src_file_path = input("请输入源文件路径:").strip()
dst_file_path = input("请输入目标文件路径:").strip()
src_file_path = r"%s" %src_file_path
dst_file_patn = r"%s" %dst_file_path
with open(src_file_path, mode = 'rb') as src_f, \
open(dst_file_path, mode = 'wb') as dst_f:
for line in scr_f:
dst_f.write(line)

data = src_f.read()

dst_f.write(data)

六、模块

import os

import time

...

print('hello')

time.sleep(3)

print('world')

预科班D12的更多相关文章

  1. 预科班D8

    2020.09.16星期三 预科班D8 学习内容: 一.注释 单行注释 ==>用 # 写在上一行或者该行后面 多行注释 ==>用 ''' '''或""" &q ...

  2. 预科班D6

    2020.09.14星期一 预科班D6 学习内容: 自习 发布小游戏 1.配置网络 #查看当前ip ifconfig #关闭NetworkManager systemctl stop NetworkM ...

  3. 预科班D2

    2020.09.08星期二 预科班D2 学习内容: 一.复习 1.平台: 平台=操作系统+计算机硬件 2.跨平台性 3.文件 文件是指操作系统提供给上层使用者操作硬盘的一种功能.

  4. 预科班D9

    2020.09.17星期四 预科班D9 学习内容: 一.列表与字典的嵌套 大前提:将所有同学的信息存起来,取值需求 1.取第二个学生的性别 stus_info = [ {"name" ...

  5. 预科班D11

    2020.09.21星期一 预科班D11 学习内容: 一.基本数据类型及内置方法 1.整形int及浮点型float + - * / // ** % > < >= <= 2.字符 ...

  6. angularJS(2)

    angularJS(2) 今天先讲一个angularJs的表单绑定实例: <div ng-app="myApp" ng-controller="formCtrl&q ...

  7. AngularJs之二

    今天先讲一个angularJs的表单绑定实例: <div ng-app="myApp" ng-controller="formCtrl"> < ...

  8. Wooyun隐写术总结

    之前还没有见到drops上有关于隐写术的总结,我之前对于隐写术比较有兴趣,感觉隐写术比较的好玩.所以就打算总结总结一些隐写术方面的东西.写的时候,可能会有错误的地方,请不吝赐教,谢谢. 本篇章中用到的 ...

  9. mysql学习【第3篇】:使用DQL查询数据

    狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习[第3篇]:使用DQL查询数据 DQL语言 DQL( Data Query Lan ...

随机推荐

  1. Java不可重入锁和可重入锁的简单理解

    基础知识 Java多线程的wait()方法和notify()方法 这两个方法是成对出现和使用的,要执行这两个方法,有一个前提就是,当前线程必须获其对象的monitor(俗称“锁”),否则会抛出Ille ...

  2. ceph 快照,克隆

    转载 https://my.oschina.net/wangzilong/blog/1595081 ceph 快照,克隆 ceph是一个非常好的后端存储系统.其中包括最常用的块存储,对象存储,文件系统 ...

  3. python元组的概念与基本操作

    元组与列表类似,关于元组同样需要做如下三点: A.概念 1.元组通过英文状态下的圆括号构成“()”.其存放元素与列表一样,可以是不通的数值类型,也可以是不通的数据结构. 2.元组仍然是一种序列,所以几 ...

  4. WS以及NW小世界网络的生成(MATLAB)

    WS小世界网络生成算法,一般小世界网络生成算法速度慢,节点度分布与数学推导不符,在网络仿真中造成不便,这里针对实际网络动力学仿真过程撰写了WS小世界网络的MATLAB生成算法,并考虑了矩阵化,具有较高 ...

  5. ReplayingDecoder 解码器:别以为我有多厉害,也只不过是使用了一下装饰器模式而已~

    原文地址 一.设计模式为啥老是用不好? 想要写出更屌的代码,提高代码的健壮性和可扩展性,那么设计模式可谓是必学的技能. 关于学习设计模式,大家可能都觉得设计模式的概念太过于抽象,理解起来有点费劲:又或 ...

  6. Java多线程_JUC包下的阻塞队列

    在前面我们提到了阻塞队列,也用过了LinkedBolckingQueue队列了,在这里,我们主要对 ArrayBlockingQueue,PriorityBlockingQueue,DelayQueu ...

  7. java爬取图片示例

    爬虫是什么 这里引用一下 wiki 中关于 网络爬虫的定义,相信大家看过后会有一个清晰的认识 网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器 ...

  8. 【MySQL】面试官问我:MySQL如何实现无数据插入,有数据更新?我是这样回答的!

    写在前面 马上就是金九银十的跳槽黄金期了,很多读者都开始出去面试了.这不,又一名读者出去面试被面试官问了一个MySQL的问题:向MySQL中插入数据,如何实现MySQL中没有当前id标识的数据时插入数 ...

  9. 求求大厂给个Offer:Map面试题

    前言 文本已收录至我的GitHub:https://github.com/ZhongFuCheng3y/3y,有300多篇原创文章,最近在连载面试系列! 我,三歪,最近开始写面试系列.我给这个面试系列 ...

  10. Kafka 0.10.1版本源码 Idea编译

    Kafka 0.10.1版本源码 Idea编译 1.环境准备 Jdk 1.8 Scala 2.11.12:下载scala-2.11.12.msi并配置环境变量 Gradle 5.6.4: 下载Grad ...