python基础三(集合、文件)

时间:2022-09-03 00:09:43

1、集合定义

集合天生能去重,且与字典一样,无序。集合用大括号括起来,里面的元素之间用逗号分隔,要跟字典区分开。

集合定义方法:s=set() #定义一个空集合

s={'1','a','b','c','d','e','f'}#直接定义一个集合

s=set('123dfdreerewrewr')#将一个字符串转化为集合

s=set(['a','b','c','d'])#将一个list转化为集合

2、交集、并集、差集

 

取交集:& 或者intersection

print(s1 & s2) #取交集
print(s1.intersection(s2)) #取交集

 

取并集:| 或者union

print(s1|s2)

print(s1.union(s2))

 

取差集

print(s1-s2)#取差集,s1中去掉s2重复的部分

print(s1.difference(s2))#

 

对称差集

print(s1^s2)#去掉两个集合的交集,剩下的

print(a.symmetric_difference(b))

 

3、集合操作:增删改查

s.add('ss') #加元素
s.pop()#随机删一个
s.remove('ss')#指定删除哪个
s.update({1,2,3}) #把另外一个集合加进去
s.isdisjoint(s5)#如果没有交集的话返回true

 

4、文件操作

 1、文件打开open

f=open(‘文件名’,''打开方式,'字符编码')

例:f = open('names','a+',encoding='utf-8'),python默认是gbk编码,open打开文件,如果不写打开方式,默认是r只读方式

文件打开有三种模式:读模式r,写模式w,追加模式a,另还有三种附加模式,加上"+" 表示可以同时读写某个文件

  r,只读模式(默认)。

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

 a,追加模式。不可读; 不存在则创建;存在则只追加内容;
 r+,可读、可写;可追加,如果打开的文件不存在的话,会报错
 w+,写读模式,不存在则创建。,已经存在的文件内容会被清空,可以读到已经写的文件内容
 a+,追加读写模式,不存在则创建;存在则只追加内容;

#只要沾上了r,文件不存在的就会报错
#只要沾上了w,都会清空原来的内容

 2、读取文件

f.read()#读文件,会将文件内容一次性全部读取出来

f.readline()#逐行读取,每次读一行,读取后文件句柄自动移到下一行,每次读取的内容都是一个字符串,如果有换行符,可以用字符串的strip方法;strip('\n')

f.readlines()#将文件所有内容按行放到list中,每个元素后都会自动加上\n.例:['1212sf\n', 'sdfdsffdfdfd\n', '33434312121212121223']

f.seek(0)#句柄移动到文件最开始0位置,括号里填几,句柄就移动到第几个字符

f.tell()#记录指针的位置,可以和seek联合使用

比如:操作一会文件后用point=f.tell  保存文件当前位置,然后下次再次才做,可以用f.seek(point)将指针定位到上一次的位置,接着上一次的位置继续

注意:seek()可以移动指针,但是只限于读管用,如果文件是以a+的模式打开的,即便seek(0)指针移动到最开始位置,在写文件内容时,还是会在最后面写
例子:
# 文件指针:
# 用来记录文件到底读到哪里了
f = open('name','a+',encoding='utf-8')# a模式的文件指针是在末尾的
f.write('呵呵呵')#如果写的内容要换行显示,可以加上'\n' :f.write('dfdf'+'\n'),读取文件时去掉\n可以用字符串的strip('\n')
f.seek(0)  #移动文件指针到最前面
f.write('seek操作后,写的内容')   #移动完文件指针之后,是只能读,写的时候还是在文件末尾写,此时也就是指针自动又到了末尾
print(f.read())#这时是读不出来内容的,因为指针在最后。如果没有上一行的f.write().则会读取文件的完整内容
python基础三(集合、文件)

 

 

 循环读取文件,也可用for line in file,此时返回的是file的每一行,格式是字符串。可对line用字符串的相关函数继续操作。读完一行会释放一行的内存。

 文件读写判断:

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

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

 3、关闭文件

     f.close() 每次用open打开文件后,文件是不会自动关闭的,需要手动close下。这样有时候会忘记关闭,占内存。

    with open('geci','a+') as f:#打开文件,文件不用时自动关闭

  4、写文件

   f.write();#往文件写内容

   f.writelines(['111','222'])#往文件写多个内容,比如list,元祖,集合等

5、random模块

使用random模块必须先引入import random

   print(random.randint(1,9999))#获取随机的1-9999之间的数字

random.shuffle(list)#打乱list的顺序,只能用于list