Python3学习笔记(3)集合、文件操作、字符转编码

---------------个人学习笔记---------------

---配套视频个人购买,可有偿提供---

------点击此处链接至博客园原文------

1.集合

集合是无序的、不重复的数据组合,主要作用是:关系测试、去重等,用{}表示,set() 创建集合。

--------------关系测试------------------------------

intersection() 求集合交集     运算符为 &

union() 求集合并集               运算符为 |

difference() 求集合差集        运算符为 -

issubset() 判断是否为子集

issuperset() 判断是否为父集

symmetric_difference() 求对称差集,即并集-交集    运算符为 ^

isdisjoint() 若两集合无交集返回True 

--------------基本操作------------------------------

add() 向集合增加1个元素

update() 向集合增加多个元素,括号内为列表

remove() 删除集合1个元素,该元素必须存在,否则报错

len()  集合长度

in 判断元素是否在集合内

not in 判断元素不否在集合内

copy() 浅复制

pop() 删除任意某个元素并返回该元素

discard() 删除集合1个元素,该元素可以不存在,不存在则不做任何操作,存在则删除

2.文件操作

f = open(文件名,打开文件模式)   打开文件返回文件句柄,有时根据情况需指定encoding,也有with open() as f: 这种方式自动调用close()方法

f.read() 一次读取文件全部内容,若连续两次f.read()则第2次读不到任何东西,因为第一次read后光标已经至末尾  模式可选为“r”

f.write() 向文件写入内容(创建新文件,若有同名文件则覆盖)   模式可选为“w”

f.write() 向文件中末尾追加内容   模式选为“a”

f.readline() 读取文件一行

f.readlines() 一次性按行读取文件,返回列表(每行为一个元素),适合处理小文件

for line in f:   大文件可逐行读取,内存中只保留一行数据,效率最高(文件变成迭代器)

f.tell() 文件句柄指针位置(可理解为光标位置,按字符计数)

f.seek()  设置句柄指针位置,如f.seek(0) 则光标移至文件开头

f.encoding 该文件的编码

f.name 该文件的名字

f.isatty() 判断是否为终端设备,如打印机

f.flush() 强制刷新,io往文件写的时候是等到待写入文件达到buffer_size才一起写入,f.flush()可以强制刷新,直接即时写入

f.truncate() 截取x个字符

f.close() 关闭文件句柄

----------------------------------------打开文件模式------------------------------------------

r  只读,若文件不存会报错

w  只写,若文件不存在则自动创建再写入,会覆盖文件

a  追加,若文件不存在则自动创建再写入,不会覆盖文件,但在末尾追加

r+ 读写,若文件不存会报错,写会覆盖文件(比如读三行后后再写,写的时候不是从光标当前位置写了,而是在末尾追加写)

w+ 写读,若文件不存在则自动创建再写入,写会覆盖文件

a+  追加,若文件不存在则自动创建再写入,写不会覆盖文件,但在末尾追加

wb,rb类似于w、r,但用于二进制文件(如视频)或Python3中网络传输

---------------------------------------------------------------------------------------------------------

3.文件修改

上述文件操作中修改文件会将原文件覆盖

方法一:类似于vim先将文件加载到内存里再修改,效率低

方法二:读文件修改后写入一个新的文件,相比较效率更高

注意字符串操作有返回值,原字符串值不被修改

4.进度条(缓冲flush)

 5.字符转编码

猜你喜欢

转载自www.cnblogs.com/deeplearning1314/p/10879490.html
今日推荐