文件读取,写入 二进制读取写入

文件读写

现在的操作系统不允许普通的程序直接进行磁盘操作,所以文件读写请求操作系统打开一个文件对象,然后通过操作系统提供的接口对我们的文件进行读写操作。

在python中读写文件十分简单,我们可以使用python内置的open()函数来打开文件对象。

f = open(file,mode,encoding)

参数一:file 文件路径

mode:模式,读取文件的时候使用“r”,默认“r”

encoding:指定读取的编码格式

功能:打开一个文件,并且获取到打开文件的对象。

f.read()

功能:一次性读取所有内容

f.read.(size)

功能:一次性读取size个字节

f.readline()

功能:一次性读取一行

f.readlines()

功能:一次性读取所有,以列表的形式返回,列表每个元素就是读取到的每一行数据。

注意:当文件特别大的情况下,我们可以使用f.read.(size)或者f.readline()进行读取。

当读取配置文件的时候,建议使用使用f.read.(size)或者f.readline()进行读取。

f.close()

功能:关闭文件

注意:当文件读取完毕之后,一定要进行关闭,因为打开的文件是占内存的,并且对于系统来讲一次性打开文件的个数也是有限制的。

写入文件

1.打开文件对象

参数一:文件路径[可以存在,也可以不存在]

参数二:模式[w/a]

参数三:encoding 编码格式

open(“demo.txt”,“W”,encoding=“utf-8”)

功能:返回一个打开文件的对象

当W模式的时候,覆盖写,若此文件已经存在,后面写的会将前面的文件进行覆盖,若此文件不存在,则创建此文件

当使用A模式的时候,追加写,若此文件已经存在,后面写的追加在源文件的后面,若此文件不存在,则创建文件。

f.write(str)

功能:将字符串写入到打开的文件中,注意写入的必须是字符串

f.writelines(list)

参数:列表,并且列表中元素一定是字符串

功能:将列表中的元素写入到打开的文件中。

f.close()

功能:保证内容写入到文件中。

with语句

with open() as f1:

​ f1.read()

文件操作

​ 读取文件

​ 写入文件

当with下面语句执行完毕之后,他会自动帮我们关闭文件,无需我们手动close文件

二进制文件的读取

当读取音频视频以及图片的时候,我们需要使用二进制文件的读取以及写入

with open(file,mode) as f :

​ pass

file:文件路径

mode:rb 读取二进制文件

strb = f.read()

功能:一次性读取所有内容,以二进制的字符串返回

strb = f.read(size)

功能:一次性读取size个字节

注意:一般情况下,使用f.read(size)情况多

二进制文件的写入:

with open(file,mode) as f :

​ pass

file:文件路径

mode:wb /ab 写入二进制文件

f.write(strb)

56101077723

errors = "ignore"对编码错误的处理,默认是严格的,若使用errors = “ignore”,则忽略编码错误

内存中的读写

StringIO 在内存中读写字符串。

import io

from io import StringIO

sio.write(str)

功能:获取写入的内容

sio.getvalue()

功能:获取写入的内容

sio.read( )

功能:一次性获取内容

在内存中读取二进制字符创

from io import BytesIO

序列化与反序列化

将变量从内存变成可存储或者是可传输的这个过程,我们称之为序列化。

将磁盘中的信息(序列化对象里面)重新读入到内存的这个过程我们称之为反序列化。

pickle模块

import pickle

pickle模块可以将任意的对象序列化成二进制的字符串写入到文件中,还可以从文件中读取冰企鹅额转为写入时候类型

pickle.dumps(obj)

功能:将obj进行序列化

pickle.dump(obj,f)

参数一:被序列化对的对象

参数二:打开的文件

功能:将obj序列化并且存入到打开的文件中

pickle.loads(bytes)

功能:将二进制字符串转为对象

pickle.load()

功能:将文件中的内容读取并且转为对象

json 模块

json 模块提供的方法,可以直接将python基本数据类型序列化成json字符串。也可以将json字符串转为python的基本数据类型。

import json

json.dumps(obj,deffault)

obj:被序列化的对象

default:函数,将对象转为字典的函数

功能:将对象序列化为json字符串

json.dump(obj,f,deffault)

obj:被序列化的对象

f:打开的文件对象

default:函数,将对象转为字典的函数

功能:将对象序列化为json字符串并且写入到打开的文件对象中

json.loads(s,object_hook)

参数一:字符串

参数二:将字典转为对象的函数

功能:将字符串反序列化成对象

json.load(f,object_hook)

参数一:打开的文件对象

参数二:将字典转为对象的函数

功能:将打开的文件对象的内容读取并且反序列化成对象

读取csv文件

导入csv模块 import csv

写入csv文件

import csv

猜你喜欢

转载自blog.csdn.net/weixin_45183510/article/details/93135578