Python文件处理总结
Python文件处理
-
Python文件概念
文件:Python中文件是对象;
Linux文件:一切设备都可以看成文件,如磁盘文件、管道、网络Socket、外设等。
文件属性:用户,读、写、执行权限;
-
Python文件打开
文件打开方法:open(name[,mode[buf]])
name:文件路径
mode:打开方式
buf:缓冲buffering大小
-
Python读取方式
文件读取方法:
read([size]):读取文件(读取size个字节,默认读取全部)
readline([size]):读取一行
readlines([size]):读取完文件,返回每一行所组成的列表
iter:使用迭代器读取文件
-
Python写入方式
文件写入方法:
write(str):将字符串写入文件
writelines(sequence_of_strings):写多行到文件
文件写过程如下图:
1)主动调用close()或者flush方法,写缓存同步到磁盘;
2)写入数据量大于或者等于写缓存,写缓存同步到磁盘
-
Python文件打开方式
python文件打开方式如下:
1)”r”:只读方式打开,文件必须存在;
2)”w”:只写方式打开,文件不存在创建文件,文件存在则清空文件内容
3)”a”:追加方式打开,文件不存在创建文件
4)”r+”或”w+”:读写方式打开
5)”a+”:追加和读写方式打开
6)”rb”,”wb”,”ab”,”rb+”,”wb+”,”ab+”:二进制方式打开
-
Python文件关闭
为什么需要关闭:
1)将写缓存同步到磁盘;
2)Linux系统中每个进程打开文件的个数是有限的;
3)如果打开文件数到了系统限制,在打开文件就会失败
-
Python文件指针
1)写入文件后,必须打开才能读取写入内容
2)读取文件后,无法重新再次读取读过的内容
文件读取写入文件指针移动过程如下图:
Python文件指针操作:
seek(offset[,whence]):移动文件指针;
offset:偏移量,可以为负数;
whence:偏移相对位置;
Python文件指针定位方式:
os.SEEK_SET:相对文件起始位置;值(0)
os.SEEK_CUR:相对文件当前位置;值(1)
os.SEEK_END:相对文件结尾位置;值(2)
tell()函数返回文件当前的偏移
-
Python文件对象属性
file.fileno():文件描述符;
file.mode():文件打开权限;
file.encoding():文件编码格式;
file.closed()文件是否关闭;
-
Python标准文件
文件标准输入:sys.stdin;
文件标准输出:sys.stdout;
文件标准错误:sys.stderr;
-
Python文件命令行参数
sys模块提供sys.argv属性,通过该属性可以得到命令行参数;
sys.argv:字符串组成的列表
-
Python文件编码格式
创建一个utf-8或者其他编码格式的文件方法:
使用codecs模块提供方法创建指定编码格式文件
open(fname,mode,encoding,errors,buffering):使用指定编码格式打开文件
-
Linux文件系统
文件包括:磁盘(ext2,ext4)文件,NFS文件系统,各种外设(sd卡,USB设备)等;
Linux文件系统示意图如下:
Python对文件操作的流程分析图如下:
-
OS模块对文件和目录操作
os.open(filename,flag [,mode]):打开文件
flag:打开文件方式
os.O_CREAT:创建文件
os.ORDONLY:只读方式打开
os.O_WRONLY:只写方式打开
os.O_RDWR:读写方式打开
os.read(fd,buffersize):读取文件
os.write(fd,string):写入文件
os.lseek(fd,pos,how):文件指针操作
os.close(fd):关闭文件
os.access(path,mode):判断改文件权限:F_OK存在,权限:R_OK,W_OK,X_OK
listdir(path):返回当前目录下所有文件组成的列表
remove(path):删除文件
rename(old,new):修改文件或者目录名
mkdir(path[,mode]):创建目录
makedirs(path[,mode]):创建多级目录
removedirs(path):删除多级目录
rmdir(path):删除目录(目录必须空目录)
os.path模块方法:
exists(path):当前路径是否存在
isdir(s):是否是一个目录
isfile(path):是否是一个文件
getsize(filename):返回文件大小
dirname(p):返回路径的目录
basename(p):返回路径的文件名