python读写文件剖析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014665013/article/details/85711216


前段时间用print在一个启动的服务上面打log,结果每次都是等半天,然后一股脑的读写,直觉告诉我是buffer的问题~

1.基本操作

f = open('py3.txt','wt',encoding='utf-8')
f.write('你好')
f.close()

f = open('py3.txt','rt',encoding='utf-8')
s = f.read()
print(s)

2.设置文件缓冲

缓冲分三种:
全缓冲 : open函数的buffering设置大于1的整数n,n为缓冲区大小,linux默认为page的大小4096 满了n 个字节才会写入磁盘 。

f=open(“demo.txt”,’w’,buffering=1) 

行缓冲 : open 函数的buffering设置为1, 碰到换行就会将缓冲区的写入磁盘。

f=open(“demo.txt”,’w’,buffering=1)

无缓冲 : open 函数的buffering设置为0 有输入就写入磁盘。

f=open(“demo.txt”,’w,’,buffering=0)

缓冲的目的:是为了减少系统的io调用。只有当符合一定条件(比如缓冲数量)时才调用io。

访问文件的状态

比如文件类型 ,访问权限,最后修改时间点,文件大小
使用系统的调用就可以达到,也可以使用os.path来进行。

#!/usr/bin/python3
 
# os.path方法
import os
 
# 判断文件是否为目录
print(os.path.isdir('python.PNG'))
 
# 判断文件是否是普通文件
print(os.path.isfile('python.PNG'))
 
 
# 获取文件 访问、修改、节点状态 时间
import time
 
print(time.localtime(os.path.getatime('python.PNG')) )
print(time.localtime(os.path.getmtime('python.PNG')) )
print(time.localtime(os.path.getctime('python.PNG')) )
 
# 获取文件大小
print(os.path.getsize('python.PNG'))

参考文献:

猜你喜欢

转载自blog.csdn.net/u014665013/article/details/85711216