Python学习你急5:文件打开与处理

Python文件处理

文件打开

f = open(filename[,mode[,bufsize]])

open()函数通过使用mode和缓存bufsize类型来打开filename标识的文件。此函数返

一文件对象,如果没有对象,则会创建一个新的对象

mode与系统函数fopen()使用的模式相同。如果mode参数省略,其默认取值为r

mode

模式 含义
r 打开用于读
w 打开用于写
a 打开用于附加(打开期间,文件位置自动移到文件末尾)
r+ 打开用于更新(读和写)
w+ 截断(或清空)文件,接着打开文件用于读写
a+ 打开文件用于读和写,并自动改变当前为止到文件尾,当附加任何模式选项时,以二进制模式而不是文本模式,打开文件(这种模式
b 仅对windows、dos和其他一些操作系统有效,对Unix、MacOS和BeOS则不管选项为何值,以二进制模式对待所有文件)

open()函数的bufsize选项参数决定从文件中读取数据时所使用的缓存的大小,如果bufsize省略,就使用系统默认的缓存容量

>>> f =open('/Users/David/Documents/string1.txt','r',encoding = 'utf-8')
>>> f
<_io.TextIOWrapper name='/Users/David/Documents/string1.txt'mode='r' encoding='utf-8'>

注意:要读取文件中的中文字符时,必须将encoding改写为'utf-8'

文件处理

f.close() 关闭文件

f.read([size=-1])

从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回

>>> f =open('/Users/David/Documents/string1.txt','r',encoding = 'utf-8')

>>> f

<_io.TextIOWrapper name='/Users/David/Documents/string1.txt'mode='r' encoding='utf-8'>

>>> f.read()

'我爱你\n就像老鼠爱大米'

当再一次执行f.read()时,返回一个空的字符串,因为此时指针已经指向了文档末尾

>>> f.read()

''

当给定size的值的时候

>>> f =open('/Users/David/Documents/string1.txt','r',encoding = 'utf-8')

>>> f.read(5)

'我爱你\n就'

f.readline([size=-1])

从文件中读取并返回一行(包括行结束符),如果有size有定义则返回size个字符

>>> f =open('/Users/David/Documents/string1.txt','r',encoding = 'utf-8')

>>> f.readline()

'我爱你\n'

f.write(str)

将字符串str写入文件,注意,要将字符串写入文件必须保证打开文件时用 'w' 或 'a' 打开

>>> f=  open('/Users/David/Documents/我爱你.txt','w',encoding = 'utf-8')

>>> f

<_io.TextIOWrappername='/Users/David/Documents/我爱你.txt'mode='w' encoding='utf-8'>
>>> f.write('我爱Python')

8

>>> f.close()

f.writelines(seq)

向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象

f.seek(offset, from)

在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节

>>> f =open('/Users/David/Documents/string1.txt','r',encoding = 'utf-8')

>>> f.seek(13,0)

13

>>> f.read()

'像老鼠爱大米'

f.tell()

返回当前指针在文件中的位置

>>> f =open('/Users/David/Documents/string1.txt','r',encoding = 'utf-8')

>>> f.read(5)

'我爱你\n就'

>>> f.tell()

13        #函数本身是按照英文字节的位置计算的

f.truncate([size=file.tell()])

截取文件到size个字节,默认是截取到文件指针当前位置

使用for语句可以直接将文件打印出来

>>> f =open('/Users/David/Documents/string1.txt','r',encoding = 'utf-8')

>>> for each_line in f:

print(each_line)

我爱你

就像老鼠爱大米
posted @ 2017-06-13 08:14  戴维德  阅读(207)  评论(0编辑  收藏  举报