编程语言
首页 > 编程语言> > python基础--文件IO

python基础--文件IO

作者:互联网

文件读写

打开和关闭文件

打开文件

file object = open(file_name [, access_mode][,buffering])
#------------------#
file_name:是一个包含了想要访问文件的文件名称的字符串值。
access_mode:决定了打开文件的模式:只读(r),写入(w),追加(a)等。默认为只读(r)
buffering:
	如果buffering的值设为0,就不会有寄存;
    如果buffering的值设为1,访问文件时会寄存行;
    如果buffering的值设为大于1的整数,表明这就是寄存区的缓冲大小;
    如果buffering的值设为负数,寄存区的大小为系统默认;
#-----------------#   
y y y y
y y y y y
创建 y y y y
覆盖 y y
模式 r r+ w w+ a a+
指针在开始 y y y y
指针在结尾 y y
file对象的属性 描述
file.closed 返回true:如果文件已经关闭,返回true;否则返回false
file.mode 返回被打开文件的访问模式
file.name 返回文件的名称
file.softspace 返回false:如果用print输出后,必须跟一个空格符,则返回false。否则返回true

关闭文件

fileObject.close()

读取和写入文件

读取文件

file-like Object

二进制文件

with open('pic/mypic.jpg','rb') as f:
	print(f.read())

字符编码

with open('text/mytext.txt','rb',encoding='gbk',errors='ignore') as f:
	print(f.read())

写入文件

StringIO和BytesIO

StringIO

#写入StringIO:
from io import StringIO
f = StringIO()
f.write('ssfaf')

#读取StringIO:
from io import StringIO
f = StringIO('ssssssssssssss')
print(f.read())

BytesIO

序列化和反序列化

**序列化 **

import pickle
import pickle

# 把变量b序列化:把变量b变成可以存储为文件的bytes
d = 'sd'
a = pickle.dumps(d)
print(a)

# 把序列化后的内容存储到文件中:因为序列化变量b后,为bytes类型,所以使用“wb|rb”
f = open('pickle.txt','wb')
# f.write(a)
pickle.dump(d,f)
f.close()
# 反序列
f = open('pickle.txt','rb')
d = pickle.load(f)
f.close()
print(d)

反序列化

JSON

JSON类型 Python类型
{} dict
[] list
"String" str
1234.51 int|float
true|false True|False
null None
import json

d =dict(name='si',age=14,sex='nan',qq=(124,24,555))

# 把python对象-->json:序列化
# help(json.dumps)
json_dumps_str = json.dumps(d)
print(json_dumps_str)

# help(json.dump)
# f = open('json.txt','w')
# json_dump_str = json.dump(d,f)
# print(json_dump_str)

# 把json格式-->python对象:反序列化
# help(json.loads)
python_loads_object = json.loads(json_dumps_str)
print(python_loads_object)

# help(json.load)
# f1 = open('json.txt','r')
# python_load_object = json.load(f1)
# print(python_load_object)

标签:文件,file,StringIO,python,写入,--,json,IO,序列化
来源: https://www.cnblogs.com/bright-future/p/14729131.html