python学习笔记(三):文件操作和集合

这篇博客来说一下python对文件的操作。

对文件的操作分三步:

1、打开文件获取文件的句柄,句柄就理解为这个文件

2、通过文件句柄操作文件

3、关闭文件。

现有以下文件file.txt:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

寂寞当然有一点

你不在我身边

总是特别想念你的脸

距离是一份考卷

测量相爱的誓言

最后会不会实现

我们为爱还在学

学沟通的语言

学着谅解

学着不流泪

等到我们学会飞

飞越黑夜和考验

日子就要从孤单里毕业

我们用多一点点的辛苦

来交换多一点点的幸福

就算幸福

还有一段路

等我们学会忍耐和付出

这爱情一定会有张证书

证明

从此不孤独

从此不孤独

文件基本操作:

1

2

3

4

5

6

7

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()#关闭文件

打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,后面通过此文件句柄对该文件操作,

打开文件的模式有:

1

2

3

r,只读模式(默认)。

w,只写模式。【不可读;不存在则创建;存在则删除内容;】

a,追加模式。【不可读; 不存在则创建;存在则只追加内容;】

"+" 表示可以同时读写某个文件

1

2

3

r+,【可读、可写;可追加,如果打开的文件不存在的话,会报错】

w+,【写读模式,使用w+的话,已经存在的文件内容会被清空,可以读到已经写的文件内容】

a+,【追加读写模式,不存在则创建;存在则只追加内容;】

"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)

1

2

rU

r+U

"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

1

2

3

rb

wb

ab

文件操作方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

f = open(‘file.txt‘,‘r+‘,encoding=‘utf-8‘)#encoding参数可以指定文件的编码

f.readline()#读一行

f.readable()#判断文件是否可读

fr.writable()#判断文件是否可写

fr.encoding#打印文件的编码

f.read()#读取所有内容,大文件时不要用,因为会把文件内容都读到内存中,内存不够的话,会把内存撑爆

f.readlines()#读取所有文件内容,返回一个list,元素是每行的数据,大文件时不要用,因为会把文件内容都读到内存中,内存不够的话,会把内存撑爆

f.tell()#获取当前文件的指针指向

f.seek(0)#把当前文件指针指向哪

f.write(‘爱情证书‘)#写入内容

f.fulsh()#写入文件后,立即从内存中把数据写到磁盘中

f.truncate()#清空文件内容

f.writelines([‘爱情证书‘,‘孙燕姿‘])#将一个列表写入文件中

f.close()关闭文件

大文件时,读取文件高效的操作方法:

用上面的read()和readlines()方法操作文件的话,会先把文件所有内容读到内存中,这样的话,内存数据一多,非常卡,高效的操作,就是读一行操作一行,读过的内容就从内存中释放了

1

2

3

4

f = open(‘file.txt‘)

for line in f:

print(line)

这样的话,line就是每行文件的内容,读完一行的话,就会释放一行的内存

with使用:

在操作文件的时候,经常忘了关闭文件,这样的就可以使用with,它会在使用完这个文件句柄之后,自动关闭该文件,使用方式如下:

1

2

3

4

5

6

7

with open(‘file.txt‘,‘r‘) as f:#打开一个文件,把这个文件的句柄付给f

for line in f:

print(line)

with open(‘file.txt‘) as fr,with open(‘file_bak‘,‘w‘) as fw: #这个是多文件的操作,打开两个文件,fr是读file.txt,fw是新建一个file_bak文件

for line in fr:#循环file.txt中的每一行

fw.write(line)#写到file_bak文件中

修改文件:

修改文件的话,有两种方式,一种是把文件的全部内容都读到内存中,然后把原有的文件内容清空,重新写新的内容;第二种是把修改后的文件内容写到一个新的文件中

第一种

1

2

3

4

with open(‘file.txt‘,‘r+‘) as fr:

res = fr.read()

new_res = res.replace(‘我‘,‘me‘)

fr.write(new_res)

第二种

1

2

3

4

with open(‘file.txt‘) as fr,with open(‘file_new‘,‘w‘) as fw: #这个是多文件的操作,打开两个文件,fr是读file.txt,fw是新建一个file_bak文件

for line in fr:#循环file.txt中的每一行

new_line = line.replace(‘我‘,‘me‘)

fw.write(new_line)#写到file_bak文件中

集合:

集合也是一种数据类型,一个类似列表东西,它的特点是无序的,不重复的,也就是说集合中是没有重复的数据

集合的作用:

1、它可以把一个列表中重复的数据去掉,而不需要你再写判断

2、可以做关系测试,比如说有两个班,一个性能测试班,一个是接口测试班的,想找出来既学习了性能又学习了接口测试的同学,就可以用集合

定义集合

1

2

3

4

list = [2,3,1,2,3,4]

s_list = set(list)#这样就定义了一个集合

set1 = set([1,3,4,5,6])#这种方式和上面的都是把list转换成一个集合

set2={‘hehe‘,‘hehe1‘,‘hehe3‘}#这种方式是直接定义一个集合

集合操作

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

list1 = {1, 2, 3, 4, 5, 6, 9}

list2 = {2, 3, 4, 6, 1}

list3 = {1, 2, 3}

print(list1.intersection(list2))  # 取交集,也就是取list1和list2中都有的

print(list1 & list2)# 取交集

print(list1.union(list2))  # 取并集,也就是把list1和list2合并了,然后去除重复的

print(list1 | list2)# 取并集

print(list1.difference(list2))  #取差集 在list中存在,在list2中没有的

print(list1 - list2)

print(list3.issubset(list1))#判断list3是不是list1的子集

print(list1.issuperset(list3))#判断list1是不是list3的父集

print(list1.isdisjoint(list3))#判断list1和list3是否有交集

print(list1.symmetric_difference(list2))#对称差集,输出两个列表中都没有的值,也就是把两个集合中相同的去掉

print(list1 ^ list2)

list1.add(888)#添加元素

list1.update([777,666,666])

list1.remove(777)#删除元素,如果元素不存在会报错

list1.pop()#删除一个随机的元素,并返回删除的元素

list1.discard(‘dddd‘)#如果删除的元素存在,删除,不存在不做处理

原文地址:https://www.cnblogs.com/chunyanxu/p/8732622.html

时间: 2024-10-10 20:34:41

python学习笔记(三):文件操作和集合的相关文章

Python学习基础篇—文件操作和集合

这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件file.txt: 我们哭了 我们笑着 我们抬头望天空 星星还亮着几颗 我们唱着 时间的歌 才懂得相互拥抱 到底是为了什么 因为我刚好遇见你 留下足迹才美丽 风吹花落泪如雨 因为不想分离 因为刚好遇见你 留下十年的期许 如果再相遇 我想我会记得你 我们哭了 我们笑着 我们抬头望天空 星星还亮着几颗 我们唱着 时间的歌 才懂得相互

python学习笔记4-python文件操作

python文件操作 open r:以读方式打开 w:以写方式打开 a:以追加模式 r+:读写模式 w+:读写模式(参见w) a+:读写模式(参见a) rb:以二进制读模式打开 wb:以二进制写模式打开(参见w) ab:以二进制追加模式打开(参见a) rb+:以二进制读写模式打开(参见r+) wb+:以二进制读写模式打开(参见w+) ab+:以二进制读写模式打开(参见a+) with open 使用for循环遍历文件 打开文件 [[email protected] ~]# vim forread

OpenCV for Python 学习笔记 三

给源图像增加边界 cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value) src:源图像 top,bottem,left,right: 分别表示四个方向上边界的长度 borderType: 边界的类型 有以下几种: BORDER_REFLICATE # 直接用边界的颜色填充, aaaaaa | abcdefg | gggg BORDER_REFLECT # 倒映,abcdefg | gfedcbamn | nmabcd

python 学习笔记 三 字典

字典 Python的高效的key/value哈希表结构叫做"dict", dict的内容可以写成一系列的key:value对并放入{ }中, 相当于: dict = {key1:value1, key2:value2, ...}, 一个空的字典就是俩个大括号{ }. 下面是从一个空字典创建字典以及一些关键点: 数字, 字符串和元组可以作为字典的key, value可以是任何类型(包括字典). ## Can build up a dict by starting with the the

python学习笔记九——文件与目录

1.python进行文件读写的函数是open或file类 mode:r  只读 r+   读写 w  写入,先删除原文件,再重新写入,如果文件没有则创建 w+  读写,先删除原文件,再重新写入,如果文件没有则创建(可写入和输出) a  写入,在文件末尾追加新的内容,文件不存在则创建 a+  读写,在文件末尾追加新的内容,文件不存在则创建 b  打开二进制文件,可与r,w,a,+结合使用 U  支持所有的换行符号,"\r","\n","\r\n"

python学习笔记三---segmaphore信号量学习

# *-* coding=gb2312 *-* ''' 信号量semaphore 是一个变量,控制着对公共资源或者临界区的访问.信号量维护着一个计数器,指定可同时访问资源或者进入临界区的线程数. 每次有一个线程获得信号量时,计数器-1.若计数器为0,其他线程就停止访问信号量,直到另一个线程释放信号量. ''' import threading import random import time class MyThread(threading.Thread): availableTables=[

python基础(三)文件操作和集合

一.文件操作 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 1.文件基本操作: f = open('file.txt','r') #以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读, 在python2中还有file方法可以打开文件,python3中file方法已经没有了,只有open frist_line = f.readline()#获取文件的第一行内容,返回的是一个list print(frist

Python学习:7.文件操作

文件操作 我们曾将听过一个问题,将大象放入冰箱分为三步:1.打开冰箱门,2.将大象放进去,3.关上冰箱门.今天我们要讲的Python文件操作的步骤就像将大象放入冰箱的步骤一样. 使用Python操作文件的基本步骤: 打开文件 对文件内容进行操作(读取文件信息,向文件中写入信息等) 关闭文件 一.打开文件 在上一篇的内置函数介绍中,我们提到了open这个函数,这个函数的作用就是打开一个文件. 格式一 文件句柄 = open(文件路径,打开格式,编码) 打开文件时,需要指定文件路径和以何种方式打开文

Python学习笔记三)

Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)-------------------------------------------- 十.Python标准库 Python标准库是随Pthon附带安装的,包含了大量极其有用的模块. 1. sys模块 sys模块包含系统对应的功能 sys.argv ---包含命令行参数,第一个参数是py的文件名 sys.platform ---返回平台类型 sy