python读写txt文件

整理平常经常用到的文件对象方法:

f.readline()   逐行读取数据
方法一:

1 >>> f = open('/tmp/test.txt')
2 >>> f.readline()
3 'hello girl!\n'
4 >>> f.readline()
5 'hello boy!\n'
6 >>> f.readline()
7 'hello man!'
8 >>> f.readline()
9 ''

方法二:

 1 >>> for i in open('/tmp/test.txt'):
 2 ...   print i
 3 ...
 4 hello girl!
 5 hello boy!
 6 hello man!
 7 f.readlines()   将文件内容以列表的形式存放
 8  
 9 >>> f = open('/tmp/test.txt')
10 >>> f.readlines()
11 ['hello girl!\n', 'hello boy!\n', 'hello man!']
12 >>> f.close()

f.next()   逐行读取数据,和f.readline() 相似,唯一不同的是,f.readline() 读取到最后如果没有数据会返回空,而f.next() 没读取到数据则会报错

 1 >>> f = open('/tmp/test.txt')
 2 >>> f.readlines()
 3 ['hello girl!\n', 'hello boy!\n', 'hello man!']
 4 >>> f.close()
 5 >>>
 6 >>> f = open('/tmp/test.txt')
 7 >>> f.next()
 8 'hello girl!\n'
 9 >>> f.next()
10 'hello boy!\n'
11 >>> f.next()
12 'hello man!'
13 >>> f.next()
14 Traceback (most recent call last):
15 File "<stdin>", line 1, in <module>
16 StopIteration

f.writelines()   多行写入

 1 >>> l = ['\nhello dear!','\nhello son!','\nhello baby!\n']
 2 >>> f = open('/tmp/test.txt','a')
 3 >>> f.writelines(l)
 4 >>> f.close()
 5 [root@node1 python]# cat /tmp/test.txt
 6 hello girl!
 7 hello boy!
 8 hello man!
 9 hello dear!
10 hello son!
11 hello baby!

f.seek(偏移量,选项)

 1 >>> f = open('/tmp/test.txt','r+')
 2 >>> f.readline()
 3 'hello girl!\n'
 4 >>> f.readline()
 5 'hello boy!\n'
 6 >>> f.readline()
 7 'hello man!\n'
 8 >>> f.readline()
 9 ' '
10 >>> f.close()
11 >>> f = open('/tmp/test.txt','r+')
12 >>> f.read()
13 'hello girl!\nhello boy!\nhello man!\n'
14 >>> f.readline()
15 ''
16 >>> f.close()

这个例子可以充分的解释前面使用r+这个模式的时候,为什么需要执行f.read()之后才能正常插入
f.seek(偏移量,选项)
(1)选项=0,表示将文件指针指向从文件头部到“偏移量”字节处
(2)选项=1,表示将文件指针指向从文件的当前位置,向后移动“偏移量”字节
(3)选项=2,表示将文件指针指向从文件的尾部,向前移动“偏移量”字节

偏移量:正数表示向右偏移,负数表示向左偏移

 1 >>> f = open('/tmp/test.txt','r+')
 2 >>> f.seek(0,2)
 3 >>> f.readline()
 4 ''
 5 >>> f.seek(0,0)
 6 >>> f.readline()
 7 'hello girl!\n'
 8 >>> f.readline()
 9 'hello boy!\n'
10 >>> f.readline()
11 'hello man!\n'
12 >>> f.readline()
13 ''

f.flush()    将修改写入到文件中(无需关闭文件)

>>> f.write('hello python!')
>>> f.flush()
hello girl!
hello boy!
hello man!
hello python!

f.tell()   获取指针位置

1 >>> f = open('/tmp/test.txt')
2 >>> f.readline()
3 'hello girl!\n'
4 >>> f.tell()
5 12
6 >>> f.readline()
7 'hello boy!\n'
8 >>> f.tell()
9 23

 

上一篇:Java使用分隔符读取大文本文件


下一篇:python之文件