Python基础10: 文件操作和IO操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/plychoz/article/details/87869787
'''
文件:可以作为数据的存储(存储爬取的数据)
数据库(redis mysql)
文件和数据库都是数据持久化
'''
my_list = []
my_list.append(1)
print(my_list)

'''
正常运行的项目都是在内存当中
保存数据的内容需要存在硬盘里面(文件是以硬盘为载体的)
'''

'''
文件的访问模式
'''

'''
r模式(只读),文件不存在会崩溃
w模式(只写)
a模式(追加)
rb模式:以二进制的方式读取文件(常用)
wb模式:以二进制的方式写入文件(常用)
ab模式:以二进制的方式追加数据(常用)
'''
file = open('1.txt','r') #返回一个路径
#读取文件中的所有数据
content = file.read()
print(content)
#关闭文件(必须的)
file.close()

'''
如果文件存在的话,那么文件中所有数据会被清空,再写入数据
windows默认编码方式是gbk
mac默认是utf-8
'''
file = open('1.txt','w',encoding = 'utf-8') #返回一个路径
#读取文件中的所有数据
file.write('111')
file.write('222')
#关闭文件(必须的)
file.close()

#查看当前编码格式
result = file.encoding
print(result)

file = open('1.txt', 'a', encoding='utf-8')
file.write('444')


'''
rb、wb、ab模式,不需要指定encoding
二进制方式需要解码
'''
file = open('1.txt','rb')
file_data = file.read()
content = file_data.decode('utf-8')
print(file_data,content)


'''
r+,w+,a+,支持读写
rb+,wb+,ab+,支持二进制读写,不建议使用,因为占资源
'''





'''
StringIO,将字符串写入内存
'''
import io
str_io = io.StringIO()

#向内存中写入数据
str_io.write('hello')
str_io.write('world')

#读取内存中的数据
content = str_io.getvalue()
print(content)

str_io.seek(0)
#查看当前文件指针位置
print(str_io.tell())
result = str_io.read()
print(result) #空,需要设置文件指针到文件开头

'''
ByteIO,向内存写入二进制数据
'''
from io import BytesIO
byte_io = BytesIO()
# 编码:将数据转化成二进制数据存入内存
byte_io.write('ha哈'.encode('utf-8'))

# 读取数据,获取内存中的所有数据
data = byte_io.getvalue()

#解码,将二进制文件转化成字符串
print(data.decode('utf-8'))

猜你喜欢

转载自blog.csdn.net/plychoz/article/details/87869787
今日推荐