python 文件操作

python进行文件读写的函数是open或file

file_handler = open(filename,,mode)

Table mode模式:
r:以读方式打开文件,可读取文件信息。
w:以写方式打开文件,可向文件写入信息。如文件存在,则清空该文件,再写入新内容
a:以追加模式打开文件(即一打开文件,文件指针自动移到文件末尾),如果文件不存在则创建
r+:以读写方式打开文件,可对文件进行读和写操作。
w+:消除文件内容,然后以读写方式打开文件。
a+:以读写方式打开文件,并把文件指针移到文件尾。
b:以二进制模式打开文件,而不是以文本模式。该模式只对Windows或Dos有效,类Unix的文件是用二进制模式进行操作的。

文件对象方法
f.close():关闭文件,记住用open()打开文件后一定要记得关闭它,否则会占用系统的可打开文件句柄数。
f.fileno():获得文件描述符,是一个数字
f.flush():刷新输出缓存
f.isatty():如果文件是一个交互终端,则返回True,否则返回False。
f.read([count]):读出文件,如果有count,则读出count个字节。
f.readline():读出一行信息。
f.readlines():
读出所有行,也就是读出整个文件的信息。
f.seek(offset[,where]):把文件指针移动到相对于where的offset位置。where为0表示文件开始处,这是默认值 ;1表示当前位置;2表示文件结尾。
f.tell():获得文件指针位置。
f.truncate([size]):截取文件,使文件的大小为size。
f.write(string):把string字符串写入文件。
f.writelines(list):把list中的字符串一行一行地写入文件,是连续写入文件,没有换行。

下面例子的代码都是调试通过的,可以直接执行,部分注释掉是为了避免相互影响


#coding=utf-8

'''
Created on 2014-11-8

@author: kite
'''

if __name__ == '__main__':

#文件读 模式为r 注意:所有读操作完毕,都会把文件指针移到到读之后的位置
file_name1='D:/Python27/ab.txt' #绝对路径 linux和win均使用 / wins下路径要注意处理下
fr=open(file_name1,'r')

#f.read([count]) 读出文件,如果有count,则读出count个字节。
#print fr.read() #读取全文,返回的类型是str 注意读完毕,文件指针也移到了文件末尾
#print fr.read(20) #读取20个字符

#fr.readline()函数 #读出一行信息,读完一行后,指针后移,下次再读就是读第2行
str1=fr.readline()
print "line1 is:"+str1
#f.tell() 获得文件指针位置。 按字符数
print fr.tell()

fr.seek(20,1)
print fr.tell()
str5=fr.readline()
print "line1 is:"+str5


#循环输出文件
#for l in fr.readlines():
# print l
#fr.close()

'''
#文件写 模式为a 以追加模式打开文件(即一打开文件,文件指针自动移到文件末尾),如果文件不存在则创建,文件如果原先与内容,不受影响
fa=open(file_name1,'a')
fa.write("new line\n")
print fa.fileno()
fa.flush()
print fa.isatty()
fa.close()
'''

'''
#文件写 模式为w 以写方式打开文件,可向文件写入信息。如文件存在,则清空该文件,再写入新内容
#往文件中写入n行数据,第一行1个0,前面有n-1个空格,第2行2个a,前面有n-2个空格,依次类推
file_name='./test.txt' #相对路径
fw=open(file_name,'a+')

#以写方式w打开,不能读,如果读会报错IOError: File not open for reading 如果换成r+或w+,或a+方式,就可以读写了,它们的区别是:
#r+ 不清除原文件内容,读写方式打开,新添加的数据在文件尾部 和a+类似??
#w+ 消除文件内容,然后以读写方式打开文件。因此原文件的内容是读不到的
#a+ 并把文件指针移到文件尾。写的数据再文件尾部,读不受影响
lw=fw.readlines()
print lw
for i in range(1,11):
d=11-i
fw.write(' '*d+'c'*i+'\n')
#f.writelines(' '*d+'a'*i+'\n')
fw.close()
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值