python基础(四)文件操作和集合
2016-12-19 17:24
453 查看
一.文件操作
对文件的操作分三步:
1、打开文件获取文件的句柄,句柄就理解为这个文件
2、通过文件句柄操作文件
3、关闭文件。
1.文件基本操作:
f=open('file.txt','r')#以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读,
在python2中还有file方法可以打开文件,python3中file方法已经没有了,只有open
frist_line=f.readline()#获取文件的第一行内容,返回的是一个list
print(frist_line)#打印第一行
res=f.read()#获取除了第一行剩下的所有文件内容,文件句柄发生了变化
print(res)
f.close()#关闭文件
2.文件打开模式:
3.文件操作:
4.文件内容修改
前面说的文件修改,只是对原内容覆盖,并不会插入内容,原内容往后移,因为这样有可能就把其他文件覆盖了,文件发生损坏。so:
文件修改两个办法:
1.加载到内存,内存修改,覆盖写回
2.另打开一个文件,修改完写到新文件中
5.文件关闭(with语句)
为了避免打开文件后忘记关闭,可以通过管理上下文,即:
如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。
在Python2.7后,with又支持同时对多个文件的上下文进行管理
二.集合
集合也是一种数据类型,一个类似列表的东西,特点是一个无序的,不重复的数据组合,它的主要作用如下:
去重,把一个列表变成集合,就自动去重了
关系测试,测试两组数据之前的交集、差集、并集等关系
1、常用操作
2、符号操作
3、集合增删改查
对文件的操作分三步:
1、打开文件获取文件的句柄,句柄就理解为这个文件
2、通过文件句柄操作文件
3、关闭文件。
1.文件基本操作:
f=open('file.txt','r')#以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读,
在python2中还有file方法可以打开文件,python3中file方法已经没有了,只有open
frist_line=f.readline()#获取文件的第一行内容,返回的是一个list
print(frist_line)#打印第一行
res=f.read()#获取除了第一行剩下的所有文件内容,文件句柄发生了变化
print(res)
f.close()#关闭文件
2.文件打开模式:
r:只读,不加模式默认为r w:只写,[不可读,不存在则创建,存在则删除内容] a:追加,[不可读,不存在则创建,存在则只追加内容] "+"表示可以同时读写某个文件 r+:读写--可读、可写、可追加,如果打开的文件不存在的话,会报错 w+:写读--先创建文件,再写(在原文件上的修改都是覆盖操作) a+:追加读--默认打开句柄在末尾,读取需先seek(0)指定位置,一写句柄就到末尾了 #r和w,seek指定句柄可以覆盖修改,a+指定句柄也是追加 "U"表示在读取时,可以将\r\n\r\n自动转换成\n(与r或r+模式同使用) rU r+U #windows上换行符为\r\n "b"表示处理二进制文件 rb:二进制文件读 wb:二进制文件写 ab:追加二进制 #文件存在硬盘上都是二进制,前边说encoding='utf-8'是指把二进制转换成utf-8编码打开, #而“b”是指,不用转换编码,我直接读取二进制
3.文件操作:
f=open("1.txt",'r',encoding="utf-8") #encoding="utf-8",utf-8编码打开文件,windows下默认gbk打开 f.readline()#读一行,字符串 f.readable()#判断文件是否可读 f.writable()#判断文件是否可写 f.encoding()#打印文件的编码 f.read()#读取文件句柄到结束所有内容,大文件时不要用,因为会把文件内容都读到内存中 f.readlines()#读取文件所有内容,返回一个list,元素是每行的数据,大文件时不要用 f.write("天安门")#写入内容,r和w模式,为句柄处覆盖写入,a模式写到最后 f.writelines(['zhangsan'],['李四'])#将一个列表写入文件中 f.flush()#强制刷新(默认缓冲区满了存入磁盘) f.close()#文件关闭 f.closed()#判断文件是否关闭 f.read(5)#读取5个字符 f.tell()#查看文件句柄位置。按照字符计数 f.seek(0)#移动文件句柄到第0个字符位置 f.encoding#文件编码 f.truncate()#什么不写清空文件 f.truncate(10)#r模式截断出前10个字符,其他模式还是清空 大文件时,读取文件高效的操作方法: 用上面的read()和readlines()方法操作文件的话,会先把文件所有内容读到内存中,这样的话,内存数据一多,非常卡,高效的操作,就是读一行操作一行,读过的内容就从内存中释放了 f=open('file.txt') forlineinf:#f变成了迭代器 print(line)#判断行的话,需自己加个计数器
4.文件内容修改
前面说的文件修改,只是对原内容覆盖,并不会插入内容,原内容往后移,因为这样有可能就把其他文件覆盖了,文件发生损坏。so:
文件修改两个办法:
1.加载到内存,内存修改,覆盖写回
2.另打开一个文件,修改完写到新文件中
withopen("test",'r+',encoding='utf-8')asfr res=fr.read() new_res=res.replace('我','me') fr.write(new_res)
withopen("test",'r',encoding='utf-8')asf,\ open("test.tmp",'w',encoding='utf-8')asf_new: forlineinf: if"聚焦头条"inline: line=line.replace("聚焦头条","fgf") f_new.write(line) #os.path.exists("test.bak")判断文件是否存在 #os.remove("test.bak")删除文件 #os.rename(test.tmp,test)重命名
5.文件关闭(with语句)
为了避免打开文件后忘记关闭,可以通过管理上下文,即:
withopen('log')asf: pass
如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。
在
二.集合
集合也是一种数据类型,一个类似列表的东西,特点是一个无序的,不重复的数据组合,它的主要作用如下:
去重,把一个列表变成集合,就自动去重了
关系测试,测试两组数据之前的交集、差集、并集等关系
1、常用操作
去重 list_1=[1,1,2,3,4,5,6,6,7,7,8,8,9,9,3] set_1=set(list_1) >>>set_1 {1,2,3,4,5,6,7,8,9} #集合用{}表示 交集 set_2={0,2,3,4} set_1.intersection(set_2) set_1&set_2 并集: set_1.union(set_2) set_1|set_2 差集: set_1.difference(set_2) set_1-set_2 #inset_1butnotinset_2 子集: set_1.issubset(set_2)#判断set_1是不是set_2的子集 父集: set_1.issuperset(set_2)#判断
set_1是不是set_2的父集
对称差集:(并集去除交集,即并集和交集的差集)输出2个列表都没有的值 set_1.symmetric_difference(set_2)即(set_1|set_2)-(set_1&set_2) set_1^set_2 判断有没有交集,无交集,返回True set_1.isdisjoint(set_2)
2、符号操作
&:交集intersection |:并集union -:差集difference s<=t:子集issubset s>=t:父集issuperset ^:对称差集symmetric_difference
3、集合增删改查
添加: set_1.add(99) 批量添加 set_1.update([1,2,3,4]) 删除: set_1.remove('h')#没有则报错 set_1.discard(99)#在则删除,不在就不操作。无返回信息 随机删: set_1.pop() 长度: len(set_1) 是否属于判断 sinset_1#(判断成员在不在都是这么写,字典中判断key) 返回set“s”的一个浅复制 s.copy()
相关文章推荐
- Python基础--文件操作和集合
- Python小白的发展之路之Python基础(二)【字符串、列表、集合、文件操作】
- python基础 第一天 (列表操作、字典操作,集合操作,文件操作)
- python基础(内置函数+文件操作+lambda)
- python基础(文件输入/输出 内建类型 字典操作使用方法)
- Python open()函数文件打开、读、写基础操作
- python基础6--文件操作--对象的读写
- Python基础【第十一篇】文件操作(file()、open()方法和fileinput模块)
- python基础-文件操作
- Python Day3 集合 函数 文件操作
- Python基础--基本文件操作
- Python Set集合,函数,深入拷贝,浅入拷贝,文件处理--小白基础
- python基础(类,文件,struct,拷贝,集合)
- python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
- 30天C#基础巩固------集合,File(文件操作 ),Encoding处理字符集
- python基础(二)——文件操作
- Python基础--基本文件操作二
- 基础知识(八)python文件操作相关函数
- 文件操作注意事项 分类: python 小练习 python基础学习 open()文件读写 2013-12-03 11:05 532人阅读 评论(0) 收藏
- Python基础之文件操作