Python 笔记 - 集合和文件操作
2017-03-31 00:00
351 查看
Set集合
Set是一个无序而且不重复的元素集合。下面看看他有哪些基本功能
创建集合
把列表转换成集合,注意列表中重复的元素只保留一次
add给集合添加元素,clear清除集合的内容
两个集合A和B可以通过difference进行比较,他会输出A中存在,而B中不存在的元素
symmetric_difference可以输出两个集合中都不相同的元素
如果后面跟了update,那么他的作用是直接替换到A的结果中,比如A中存在,B中不存在的结果是11,difference_update直接替换了A的内容;类似的如果我再执行symmetric_difference_update,他把A和B都不相同的内容保存在A中。
删除某一个元素可以用discard或者remove,但是如果该元素不存在,使用discard不会报错;而remove会抛出异常
不报错
抛出异常
如果随机的删除一个元素,可以使用pop
求交集(Intersection)和并集(Union)
update可以把其他的列表,元祖或者字符串的元素都并集进来,当然重复的不会添加
小练习:两个字典,请判断出哪些key进行了变化,添加,删除和没变?
思路:把key单独转换成集合,然后通过判断集合元素是否存在判断添加和删除;通过交集判断哪些仍然存在为改变
文件的操作
打开文件的模式
r,只读模式【默认】
w,只写模式【不可读;不存在则创建;存在则清空内容;】
x,只写模式【不可读;不存在则创建,存在则报错】
a,追加模式【可读;不存在则创建;存在则只追加内容;】
"+"表示可以同时读写某个文件
r+,读写【可读,可写】最常用
w+,写读【可读,可写】清空之后再写,然后可以读之后写入的内容
x+,写读【可读,可写】
a+,写读【可读,可写】只能在末尾更改,无法灵活指定位置
"b"表示以字节的方式操作
rb或r+b
wb或w+b
xb或w+b
ab或a+b
文件相关的函数
fread()无参数,读取全部;有参数,有b,按照字节读;有参数,无b,按照字符读
tell(),获取当前位置(字节)
seek(),调到指定的位置(字节)
write(),写入数据,有b,按照字节;无b,按照字符写入
close(),关闭文件
fileno(),文件描述符,判断文件是否有变化
flush(),强制刷新到内容
readable(),判断是否可读
readline(),按行读
truncate(),截断,清空指针后面的内容
for循环
with自动关闭文件
下面看看具体的例子
以只读方式打开一个文件db,注意编码我指定为utf-8,在utf-8里面一个汉字等于3个字节;而在gbk里面,一个汉字占据2个字节。
我用只读字节的方式打开文件
下面的操作会抛出异常,因为我用字节的方式打开文件,当我尝试用字符串写入的时候,格式不兼容
字节的方式添加信息
结果如下
以读写方式打开文件,指定只读取前2个字符,注意这里没有指定b,因此是按字符读取;否则按照字节读取;tell()可以获取当前指针的位置(字节)
首先读取一个包含汉字的文件,如下所示,我指定了编码是utf-8,也指定了b,因此他是按照字符读取;这里他读取前2个字符“幸福”,然后因为utf-8一个汉字字符是3个字节,因此他的位置是6个字节处
如果这个时候我对这个文件做个修改,seek指定位置为第一个字节处,然后向后覆盖7777,这个时候他会把汉字(3个字节)硬拆开,导致的结果就是乱码
结果如下所示
flush函数强行把内存的数据写入硬盘保存,尽管还没有close
readable顾名思义,判断一个文件是否可读,这里我一个只写方式打开的文件返回False
read()是读取全部,read(x)是读取前x个字节或者字符,而readline()是读取一行,注意指针位置变化
truncate截断,指针后面的内容清空
结果如下
一个很常见的方式是通过for循环来读取每一行的内容,如下所示
with自动关闭文件,这样不需要手动的使用f.close()了
Python2.7以后,可以同时操作两个文件,比如说,只读方式打开文件1,拷贝前10行文件到文件2里面
登录乐搏学院官网http://www.learnbo.com/
或关注我们的官方微博微信,还有更多惊喜哦~
本文出自“麻婆豆腐”博客,请务必保留此出处http://beanxyz.blog.51cto.com/5570417/1840946
Set是一个无序而且不重复的元素集合。下面看看他有哪些基本功能
创建集合
1 2 3 4 5 6 |
1 2 3 4 5 |
1 2 3 4 5 6 7 8 9 10 11 12 |
1 2 3 4 5 6 7 8 9 10 |
1 2 3 4 5 6 7 8 |
1 2 3 4 5 6 7 |
1 2 3 4 5 |
1 2 |
1 2 3 4 5 6 7 |
1 2 3 4 5 6 |
1 2 3 4 5 6 7 8 9 10 |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
思路:把key单独转换成集合,然后通过判断集合元素是否存在判断添加和删除;通过交集判断哪些仍然存在为改变
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
打开文件的模式
r,只读模式【默认】
w,只写模式【不可读;不存在则创建;存在则清空内容;】
x,只写模式【不可读;不存在则创建,存在则报错】
a,追加模式【可读;不存在则创建;存在则只追加内容;】
"+"表示可以同时读写某个文件
r+,读写【可读,可写】最常用
w+,写读【可读,可写】清空之后再写,然后可以读之后写入的内容
x+,写读【可读,可写】
a+,写读【可读,可写】只能在末尾更改,无法灵活指定位置
"b"表示以字节的方式操作
rb或r+b
wb或w+b
xb或w+b
ab或a+b
文件相关的函数
fread()无参数,读取全部;有参数,有b,按照字节读;有参数,无b,按照字符读
tell(),获取当前位置(字节)
seek(),调到指定的位置(字节)
write(),写入数据,有b,按照字节;无b,按照字符写入
close(),关闭文件
fileno(),文件描述符,判断文件是否有变化
flush(),强制刷新到内容
readable(),判断是否可读
readline(),按行读
truncate(),截断,清空指针后面的内容
for循环
with自动关闭文件
下面看看具体的例子
以只读方式打开一个文件db,注意编码我指定为utf-8,在utf-8里面一个汉字等于3个字节;而在gbk里面,一个汉字占据2个字节。
1 2 3 4 5 6 7 8 |
1 2 3 4 |
1 2 3 4 5 6 7 | 3ff0 |
1 2 3 |
1 2 3 |
1 2 3 4 5 6 |
1 2 3 4 5 6 7 |
1 2 3 4 |
1 2 3 |
1 2 3 4 |
1 2 3 4 |
1 2 3 |
1 2 3 |
1 |
1 2 3 4 5 6 7 8 |
1 2 |
1 2 3 4 5 6 7 8 |
或关注我们的官方微博
本文出自“
相关文章推荐
- 【Python学习笔记】-集合和文件操作
- [置顶] Python联系笔记2[列表,元组,集合,字典,函数,文件操作,模块,类]
- python核心笔记--第九章 文件操作
- devi into python 笔记(五)异常 文件操作 sys os glob模块简单实用
- python笔记9--文件的操作
- Python学习笔记3-Python元组、数组、字典集合的操作
- Python学习笔记 -- 第六章 文件操作
- Python学习笔记——文件对象和操作(2)
- 【python学习笔记】pthon3.x中的文件读写操作
- Python入门笔记(15):对文件的操作(1)
- Python学习笔记3-Python元组、数组、字典集合的操作
- Python 学习笔记——文件对象和操作
- python 系统学习笔记(八)---文件操作
- OC学习笔记21--OC中集合类的读写文件操作及NSData与NSValue
- python学习笔记: 一些有用的文件操作函数
- python学习笔记(一)-文件操作
- Python学习笔记——文件对象和操作(1)
- 3.python学习笔记:python对文件的操作
- python学习笔记-day03 第四部分(函数和文件操作)
- python学习笔记6—文件操作来生成船只侧面图像的描述文件