python中的基本IO函数:
1) 键盘输入函数:raw_input(string),不作处理的显示,与返回。
input(string),可以接受一个python表达式作为返回,python内部得到计算结果
2) 文件句柄(file)对象: file对象的创建必须通过open()函数来得到,
file object = open(file_name, access_mode, buffering)
file_name, 需要指向的文件的路径,
access_mode,r,w,a (加号,表示读写权限都有,b表示按二进制格式写入)
写操作,可以创建文件,但是读操作和追加操作必须是有原文件的基础上的。
buffering,如果为0,表示系统不会缓存文件内容,为1,表示系统会缓存内容,具体的值,表示缓存具体的大小。
file object的属性和方法:
属性: 1) closed,表示文件是否已经被关闭;
2) mode,表示文件是以何种方式被打开的;
3) name,表示文件的路径名字;
4)
方法: 1) close(),关闭文件句柄,同时刷新缓冲区内的信息到文件;
2) write(),将任何字符串,写入文件,行尾的换行符和原封不动;writelines,写入一行或几行,自己加换行符,
3) read(count),读出某个大小的字符串,不指定,读取全部;readlines,读出某几行,包含\n;
4) flush(),从内存中,刷新文件;
5) next(), 返回文件中的下一行;
6) tell(),返回当前文件对象的位置(不以行为单位);
7) seek(offset, where),设置文件对象的位置;0表示文件开始,1表示当前位置,2表示文件结尾;
文件的open与close必须是对称的,如果文件读写过程中,出现问题,之后的close就执行不到,所以为了解决这个问题,
多使用try,,,finally,来操作文件;
try:
f = open(‘./../../1.txt‘, ‘r‘)
print (f.read())
....
finally:
if f:
f.close()
这样来保证file的close,但是这样的书写太过繁琐,所以python引入了with的用法:
with open(‘./../1.txt‘, ‘r‘) as f:
print (f.read())
这样在with这个复合语句中,调用file object,之后会被自动close,
如果要访问每一行的内容,可以有两种写法:
1) for line in f.readlines(): #readlines()返回的是一个list
......
2) for line in f: #file object有next函数,是iterable的
....