内容概要
这篇文章主要来探讨一下Python对文件的操作,主要包括如下三方面:
-
Python 文件打开
-
-
os模块,以及os.path模块操作
Python 文件打开方式
在 Python 中打开文件,需要用到 open()
方法。具体方法如下
# open(name[mode[buf]])
"""
name:文件路径,值类型[String]
mode:打开方式,值类型[String]
buf:缓冲 buffering 大小
"""
Python 文件读取方式
read([size]):读取文件(读取 size 个字节,默认读取全部)
readline([size]):读取一行
readlines([size]):读取文件,返回每一行所组成的列表
Python 文件写入方式
write([str]):将字符串写入文件
write(sequenc_of_strings):写入多行到文件
Python 文件写入过程与存在的问题
从上图中我们可以看出来,Python 写文件的过程是先调用 Python 解释器,然后调用系统访问写入到缓存,之后蔡写入到磁盘中,也就是说,写入文件不会实时更新磁盘文件,只有当下列情况会将文件写入到磁盘中。
- 主动调用
close()
或者flush()
方法才会将文件写入到磁盘中。 - 当写入的数据量大于或者等于缓存时。
为什么要关闭文件?
这主要是有以下三种情况,或者说三个理由我们为什么要关闭文件。
- 将写缓存同步到磁盘。
- Linux 系统中每个进程打开文件的个数有限。
- 如果打开文件数达到系统限制,再打开文件就会失败。
写入和读取的位置问题
从上图我们可以发现,当我们打开文件之后,在读取三个字符之后,指针就往后移动了三个字符的空间,然后如果这个时候我们写入文件,那么会在当前指针的位置插入文字。
Python文件指针
了解了前面所说的内容,那么现在我们来了解一下 Python 文件指针定位方式:
os.SEEK_SET
: 相对文件起始位置;
os.SEEK_CUR
: 相对文件当前位置;
os.SEEK_END
: 相对文件结尾位置;
Python文件属性
file.fileno()
:文件描述符;
file.mode
: 文件打开权限;
file.encoding
: 文件编码方式;
file.closed
: 文件是否关闭;
Python标准文件
文件标准输入:sys.stdin
;
文件标准输出:sys.stout
;
文件标准错误:sys.stderr
;
Python文件命令行参数
我们执行程序,如果能根据参数不同完成不同的功能,多美好! sys
模块提供sys.argv
属性,通过该属性可以得到命令行参数; sys.argv
:字符串组成的列表。
Python文件编码格式
如何创建一个utf-8或者其他编码格式的文件? 使用codecs模块提供方法创建指定编码格式文件 open(fname, mode, encoding, errors, buffering)
使用指定编码格式打开文件
os 文件操作
os 这个模块中包含了对文件的一系列操作方式,我们现在来了解其中的一部分。
使用os模块打开文件
os.open(filename, flag [, mode])
:打开文件
flag
:打开文件方式
os.O_CREAT
:创建文件
os.O_RDONLY
:自读方式打开
os.O_WRONLY
:只写方式打开
os.O_RDWR
:读写方式打开
使用os模块对文件进行操作
os.read(fd, buffersize)
:读取文件
os.write(fd,string)
:写入文件
os.lseek(fd,pos, how)
:文件指针操作
os.close(fd)
:关闭文件
以上就是我们这篇文章介绍的主要内容了。本文相关文件,可免费下载。