python3基础笔记(二):文件操作、json操作

一、文件操作:

基本操作:

f=open('a.txt',encoding='utf-8') #默认不写就是只读模式,有汉字要加utf-8(写文件路径时加个r防止被转译,例如r'c:\user)
f.readlines() #把文件所有的内容都读出来,放到list里面
f.readline() #每次指读一行,
f.read() #读所有内容
f.close()#关闭文件
f.write('123\n') #只能写字符串
f.writelines([12,34]) #只要是循环的都可以写,可以写列表
f.tell() #获取当前指针的位置
f.seek(0) #把文件指针移到某位置,0表示最前面
f.truncate() #清空文件内容
f.fulsh() #写入文件后,刷新缓冲区立即把数据写到磁盘里
#使用with方式打开文件就不需要自己关文件了
with open('a.txt') as f:
#打开多个文件中间用,连接
with open('a.txt') as f,open('a2.txt','w',encoding='utf-8') as f2:

文件操作的几种模式: 

名称    模式 说明
r 能读,不能写,打开不存在的文件会报错
w 能写,不能读,写的时候会清空以前的内容
a 追加 能写,不能读,写时不会清空以前的内容,如果文件不存在会创建一个新的文件
r+ 读写模式 能读能写,打开不存在的文件会报错
w+ 写读模式 能读能写,打开文件的时候会清空以前的内容
a+ 追加读模式 能读能写,文件指针在最末尾,打开文件时不会清空以前的文件,

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

用read()和readlines()方法操作文件的话会非常卡,我们用一个高效的方法,每次读取一行释放一行:

f=open('file.txt',encoding='utf-8')
for line in f:
print('每一行的内容:',line)

修改文件:

有2种方法,第一种是直接修改,修改后清空原有内容,再把修改后的内容写到文件里。第二种是打开2文件,把修改的内容写到一个新的文件里

第一种:

f=open('a.txt','a+',encoding='utf-8')
f.seek(0)
result=f.read()
new_result=result.replace('abc','ABC')
f.seek(0)
f.truncate() #清空文件内容
f.write(new_result)
f.close()

第二种:

import os
f1=open('a.txt',encoding='utf-8')
f2=open('a2.txt','w',encoding='utf-8')
for line in f1: #循环a.txt的每一行
new_line=line.replace('1','一') #将1替换成一
f2.write(new_line)
f1.close()
f2.close()
os.remove('a.txt')
os.rename('a2.txt','a.txt')

二、Json操作

json串就是字符串,python中json串只能是双引号,文件中写入的内容只能是字符串。

1、json.dumps()和json.loads()可将转换的内容存到文件或数据库里

d={'name':'abc'}
import json
json_str=json.dumps(d) #把字典/list转换成字符串(json)
print(json_str)

json_str2='{"name": "abc"}'
dic=json.loads(json_str2) #把字符串(json)转换成字典
print(dic)

2、只针对文件操作的json.dump()和json.load()

ensure_ascii=False  可将json中的汉字显示出来
#将json串转换成字符串,写进文件
f=open('tata.json','w',encoding='utf-8')
json.dump(d,f,ensure_ascii=False,indent=4)

#将读出来的json串转成字典(load方法可自动读文件)
f=open('tata.json',encoding='utf-8')
dic=json.load(f)
print(dic)
 

猜你喜欢

转载自www.cnblogs.com/tata-learning/p/11575321.html