python文件读写
python程序的输入主要有两种,一种是通过命令行输入,另一种是通过文件进行输入。在大规模参数情况下,第二种方式输入相比于第一种显得方便而易行。因此,本文主要记录下如何对文件进行读写操作。
常见文件操作函数
首先,介绍一下文件打开函数open(filename[,mode[,buffering]])
参数:
- filename,文件名,类型为
str
,由文件的存储路径
和名字
组成 - mode,文件的操作模式,类型为
str
,表征,即读还是写,以文本形式还是以二进制形式。常见的符号为r
,w
,+
,a
,b
。 - buffering,缓冲区使用与否,类型为
numberical
。0
表示无缓冲,1
表示有缓冲,-1
使用默认缓冲区大小,>1
设置缓冲区大小。
- filename,文件名,类型为
功能:打开一个文件
返回值:一个文件操作对象
然后,介绍一下文件对象的常用方法:
关闭,
close()
读取
- 字节,
read(bytes)
- 行,
readline()
和readlines()
- 字节,
写,
write(list)
和writelines(seq)
,文本模式下,换行会自动依据系统进行替换。- 文件指针操作
seek(bytes)
和tell()
。
更详细的介绍,可以参考这里IO描述。
遍历文件的几种方式
1.全部读取。
#打开文件
fd = open('test.txt','r')
#一次性读取完文件
lines = fd.readlines()
#对输入文件进行处理
for line in lines:
process(line)
#关闭文件
fd.close()
2.逐行读取
#打开文件
fd = open('test.txt','r')
#对输入文件进行处理
while(true):
line = fd.readline()
if(line):
process(line)
else:
break;
#关闭文件
fd.close()
3.迭代器+异常处理机制
with open('test.txt','r') as fd:
for line in fd:
process(line)
总结
- 方法1,一次性读取,在读入文件不是很大的情况下能够行的通,一旦文件过大,会对内存进行损伤。
- 方法2,逐行读取,避免了一次性读入的劣势,没有加入异常的处理机制,代码显得过于冗长。
- 方法3,逐行读取,并加入了
with...as...
上下管理文机制,不管是否发生异常,文件总能关闭,代码简单,为最佳读取代码的格式。
参考
《Python基础教程》
《Python学习手册》