In [105]:f1 = open('/tmp/passwd','r+') 读写方式打开
In [106]: f1.next() 读一行,next陆续往下读,不会移动行指标
Out[106]: 'root:x:0:0:root:/root:/bin/bash\n'
In [107]: f1.seek(0,2) 从文件末尾行(2)偏移位置0(0),f1.seek(0)回到开始处
In [109]: f1.tell() 查看文件位置(字节)
Out[109]: 1576
In [110]: f1.write('new line.\n') 添加一行
In [112]: f1.readline() 读取一行,移动行指标
Out[112]: ''
In [129]: f1.closed 判断是否关闭
Out[129]: False 否
In [132]: f1.close() 关闭
In [133]: f1.closed
Out[133]: True 是
实例:将1到10的幂运算结果写入到test.txt
f1 = open('/tmp/test.txt','w+')
for line in ( i**2 for i in range(1,11) ):
f1.write(str(line) + '\n')
f1.flush()
f1.close()
将目录/ext下文件列表结果写入到文件test1.txt
f1 = open('/tmp/test1.txt','w+')
import os
l1 = os.listdir('/etc') #列出目录下的文件
f1.writelines(l1) #将字符串列表内容写入到文件,不能写入整数类型的数据。
f1.flush()
f1.close()
注意:如果要给每个文件加入换行符\n,可以如下定义:
f3=open('/tmp/test3.txt','w+')
l2 = [i+'\n' for i in os.listdir('/etc')]
f3.writelines(l2)
实例:输入内容到文件
#!/usr/local/bin/python27
#
import os
import os.path #加载模块
filename='/tmp/test.txt'
if os.path.isfile(filename): #判断是否有文件filename
f1 = open(filename,'a+') #追加打开模式
while True:
line = raw_input('Enter something>>') #交互输入模式
if line == 'q' or line == 'quit':
break
f1.write(line+'\n')
f1.close()
实例:指针
指针:打开一个文件,迭代print以后,指针会到最后,第二次打印的时候需要将指针恢复到最开始
In [2]: f1 = open('/etc/passwd','r')
In [3]: for line in f1:
...: print line,
...: print '==================='
...:
root:x:0:0:root:/root:/bin/bash
===================
bin:x:1:1:bin:/bin:/sbin/nologin
===================
daemon:x:2:2:daemon:/sbin:/sbin/nologin
In [5]: f1.tell()
Out[5]: 1576
In [6]: f1.seek(0) #需要将指针恢复到最开始
In [7]: for line in f1:
print line,
print '==================='
...:
root:x:0:0:root:/root:/bin/bash
===================