在python3之后的版本中,str字符串类型的东西都自动编码为utf8的格式,若我们想要让字符串以bytes的类型存在 我们可以在字符串前面加一个b
比如
b'bjdhg‘
这个字符串就是以byte的格式编码的。
读写文件:
写入文件:可以用f = open('xxxx.txt', 'wt', encoding = 'utf8') #这里的t表示文本模式
读取文件: 可以用f = open('xxxx.txt', 'rt', encoding = 'utf8') #这里的t表示文本模式
IO操作缓存:
python的IO操作时,缓存区的默认大小为4096bytes即在我们调用f.write()的时候,字节数没有达到4096的时候,还在缓存区中 只有写入的内容超过缓存区的数目时,一次性写入4096bytes内容 然后重复以上操作。
我们可以设置文件的缓冲大小
分别为
全缓冲:open函数的buffering设置为大于1的证书n,n为缓冲区的大小。
行缓冲:open函数的buffering设置为1。(读取到'\n'的时候就缓冲)
无缓冲:open函数的buffering设置为0。(实时写入,每次调用f.write就会写入到文件中去)
将文件映射到内存中:
调用标准库中mmap.mmap, 之后就可以像数组一样操作。
访问文件的状态:
调用os.stat()就可看到文件的状态了
然后配合stat包下的函数与os.stat()得到的内容st_mode就可以判断文件的类型
st_size是文件的大小
也可以去调用os.path包下的一系列方法,对文件的操作更加方便
使用临时文件:
在我们手机数据后,如果在内存中,将小号大量的内存资源,所以我们应该要采用临时文件去处理这些临时数据
临沭文件的优势:不需要去命名,切关闭后会被自动删除。
使用标准库中的tempfile下的TemporaryFIle和NamedTemporaryFile去使用临时文件
f = TemporaryFIle()
f.write('xasdasfa')
f.seek(0) #将指针返回到文件初始位置
f.read()