python json处理、集合操作、函数定义、文件读写

一.高效文件读写:

  当文件过大时,可以使用 for line in f: 的方式进行逐行读取,直接循环文件对象,每次循环的时候就是读取的每一行数据

              line=line.strip() 去掉换行符

              line=line.split(''')将每行数据以某个字符分割,分割完成后,转换成list数据

二.文件操作: 

  1.为了减少磁盘和内存的交互次数,增加了数据缓冲区,当缓冲区中的数据写满时,才会将缓冲区中的数据写到磁盘当中

  f=open('111','w',encoding='utf-8')

  f.write(',')

  f.flush()#将缓冲区里边的数据立即写到磁盘上,不等缓冲区满

  f.close()

  2.与上边方法不同,文件的另一种打开方式为:

  with open('111','w',encoding='utf-8')as f1,open('222','r',encoding='utf-8') as f2:  #打开文件,不用再执行f.close,可打开多个文件

 3.文件修改方式:
  (1)简单粗暴的方式
# 1.先获取到文件里的所有内容

# 2.然后修改内容

# 3.清空原先的所有内容
#     4.重新写入  
  f=open('111','a+',encoding='utf-8')
  f.seek(0)
  data=f.read()
  new_data=data.replace('123','python')
  f.read(0) #read完以后指针到了最后
  f.truncate() #清空所有内容
  f.write(new_data)
  f.flush()
  f.close()
  (2)高效的处理方式
# #word word——nwe
# 1.先打开原来的文件,再打开一个空文件
# 2.循环处理原来的文件里边的每一行数据,处理完成,生成新文件
# 3.把原来的文件删除,把新文件的名字改成原来的名字
import os
with open('word',encoding='utf-8') as fr,open('.word','w',encoding='utf-8') as fw:
for line in fr:
line=line.lstrip() #去掉左边的空格
if line: #判断这一行是否有数据
line=line.replace('你','you') #替换数据
fw.write(line) #写到新文件
os.remove('word')
os.rename('.word','word')

三.集合
集合的格式为:nums={1,2,3,4,1,1,1} 当print(nums)时,输出{1,2,3,4},集合有自动去重的功能,同时集合和字典一样也是无序的,所以不能支持下标(索引)取值
for n in nums:
print(n) 支持for循环取出每行数据

定义空集合:null_set=set(),如果set={}则是定义了一个空字典

list = [1,2,3,4,5,3,6]
list_2 =[2,3,5,7,8]
list=set(list)
list_2 = set(list_2)
print(list.intersection(list_2),'交集 ') #交集 取出重复数据 {2, 3, 5}
print(list.union(list_2),'并集') # 并集 去重-统一展示 {1, 2, 3, 4, 5, 6, 7, 8}
print(list.difference(list_2),'差集') #差集-取出list中有 list_2 没有 {1, 4, 6}
list_3 = set([1,3,6])
print(list_3.issubset(list)) #子集 list_3 的值在list 全有 全有时返回True,反之返回False
print(list.issuperset(list_3)) #父集 list是list_3的父集时,返回True,反之返回False
print(list.symmetric_difference(list_2)) # 对称差集 lsit 和 list_3 互相没有的  返回结果{1, 4, 6, 7, 8}  效果相当于,合并后去除重复的

print(list & list_2) #交集
print(list | list_2) # 并集
print(list -list_2) #差集
print(list ^ list_2) # 对称差集
list.add(777) #一次添加一个
list.update([888,999])#同时添加多个
list.remove(999)#删除指定的,没有找到时报错
list.pop()#随机删除一个
list.discard(888) # 删除一个指定的,不存在时 不会报错

四.json处理
json是一个字符串,只不过长得像字典,json里边只能用双引号
import json
user_info='''
{"aaa":"123456","aa":"123"}
'''
user_dic=json.loads(user_info) #把json串(字符串)转成字典
stu_info={'laowang':{'cars':['BMW','BEM-Z']}}
stu_str=json.dumps(stu_info) #把字典转成json(字符串) 命令带s的是在操作字符串,如:loads和dumps
fw =open('stu','w',encoding='utf-8')
json.dump(stu_info,fw,indent=4) #dump操作文件,不需要自己write了,人家帮你写入文件,indent=4设置格式,加4个缩进,值为4和8都可以
f=open('stu')
res=json.load(f) #直接从文件里拿,不需要再读一次文件了
print(res)
五.函数

猜你喜欢

转载自www.cnblogs.com/kuhaha/p/9189497.html