Python的文件读写、Json模块

一、打开文件的几种模式

1.使用open()函数打开文件,创建一个file对象,例如:f = open(r'D:\haha.txt','a+',encoding='utf-8')      或    with open(r'D:\haha.txt','a+',encoding='utf-8') as f  --该种写法不用关闭文件,用完自动关闭

文件路径前加'r'是防止字符转义的,如果路径中出现'\t'的话,不加r的话\t就会被转义 ,而加了'r'之后'\t'就能保留原有的样子

2.  几种模式(最常用的是a+):

    'r': 默认值,表示从文件读取数据,文件不存在会报错,指针在文件的开头

    'r+':打开一个文件用于读写,文件指针将会放在文件的开头

    'w':打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

    'w+':打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

    'a':打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

    'a+': 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

二、几个方法

f.seek(0)    #将指针的位置移动到开头,例如追加模式下要读取文件

f.read()     #读取文件里面所有的内容,字符串

f.readline()   #读取一行

f.readlines()  #读取文件里的所有内容,返回的是一个list,每一行的内容就作为一个元素在list里面

f.write()     #写一个字符串到文件

f.writelines(list)  #写一个list,将list里的元素作为一行写入在文件里

f.close()   #关闭文件

f.flush()   #把缓冲区的数据立即写在磁盘上

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

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

三、文件修改的高效处理方式

思路:

1、先打开原来的文件,再打开一个空文件

2、循环处理原来文件里面每一行数据,处理完之后,写到新文件里面

3、把原来的文件删除,把新文件的名字改成原来文件的名字

例子:

import os
with open('words',encoding='utf-8') as fr, open('.words','w',encoding='utf-8') as fw:
for line in fr:
line = line.lstrip() #去掉左边的空格
if line:#判断这一行是否有数据
line = line.replace('你','you')#替换数据
fw.write(line)#写到新文件里面

os.remove('words')#删除原来的文件
os.rename('.words','words') #把新文件的名字改成原来文件的名字

四、Json模块

import Json

json.loads(user_info)    #把json串(字符串)转成字典

json.load(f)     #这个是直接从文件里拿,不需要再读一次文件了,json帮你读,转成字典了

json.dumps(stu_info)      #把字典转成json(字符串)

json.dump(stu_info,f,ensure_ascii=False,indent=4)   

#1.不需要咱们自己再write了,人家会转成json写入到文件  2.#ensure_ascii=False 解决了中文写入文件后乱码问题




猜你喜欢

转载自www.cnblogs.com/yz-test/p/9194546.html