首页 > Python3教程 > Python3 File(文件) 操作

Python3 open函数返回的文件对象的方法

本文介绍了Python3 open函数返回的文件对象及其所具有的方法的使用,欢迎大家的学习。

open函数写文件

#!/usr/bin/python3

# 打开一个文件
f = open("aa.txt", "w")
# 写文件内容
f.write( "Python 语言教程。\n欢迎大家的学习!!\n" )
# 关闭打开的文件
f.close()

open函数:第一个参数为要打开的文件名。 

第二个参数描述文件如何使用的字符。 mode 是 'r'表示文件只读,'w'表示 只用于写 (如果存在同名文件则将被删除),

 'a' 用于追加文件内容,所写的任何数据都会被自动增加到末尾.,'r+' 同时用于读写。

 

文件对象的方法

read():读取一个文件的内容

读取文件的内容,调用 f.read(size),这将读取size大小的数据,,然后作为字符串或字节对象返回。

size 是一个数字类型的参数。 当 size 没传或者为负,则会返回该文件的所有内容。

#!/usr/bin/python3
# 打开一个文件
f = open("aa.txt", "r")
str = f.read(6)
print(str)
# 关闭打开的文件
f.close()

readline():从文件中读取一行

readline() 会从文件中读取一行。换行符为 '\n'。readline() 如果返回一个空字符串,表示已经读取到最后一行。

#!/usr/bin/python3
# 打开一个文件
f = open("aa.txt", "r")
str = f.readline()
print(str)
# 关闭打开的文件
f.close()

readlines():返回文件中的所有行

readlines() 将返回该文件中包含的所有行,一次读取所有内容并按行返回列表list。

如果设置了参数 size,则读取size指定的长度的字节,并且将这些字节按行分割。

#!/usr/bin/python3
# 打开一个文件
f = open("aa.txt", "r")
str = f.readlines()
print(str)
# 关闭打开的文件
f.close()

输出:['Python 是一个非常好的语言。\n', '是的,非常好!!\n']

迭代一个文件对象再读取每行

#!/usr/bin/python3
# 打开一个文件
f = open("aa.txt", "r")

for line in f:
print(line, end='')

# 关闭打开的文件
f.close()

 

write(): 写入字符串到文件

write(string) 将 string 字符串写入到文件中,然后返回写入的字符数。 

反复调用write()来写入更多的内容到文件,但是一定要调用f.close()来关闭文件。

当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再写入。

当调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。未调用close()的后果是数据可能只写了一部分到磁盘

使用with语句,就不用在调用close()方法了。

#!/usr/bin/python3

# 打开一个文件
f = open("aa.txt", "w")
# 写文件内容
f.write( "Python 语言教程。\n欢迎大家的学习!!\n" )
# 关闭打开的文件
f.close()

tell():返回文件对象当前所处的位置

tell() 返回文件对象当前所处的位置,它是从文件开头开始算起的字节数。

#!/usr/bin/python3

# 打开一个文件
f = open("aa.txt", "r")

# 读取文件的前10个字符
s = f.read(6)
print(s)

# tell()返回文件对象当前所处的位置
print(f.tell())

# 关闭打开的文件
f.close()

tell()返回文件对象当前所处的位置

seek():改变文件当前的位置

如果我们要改变文件当前的位置,就使用seek(offset, from_what) 函数。

from_what 的值,如果是 0 表示开头,如果是 1 表示当前位置,2 表示文件的结尾,例如:

seek(x,0) : 从起始位置即文件首行首字符开始移动 x 个字符

seek(x,1) : 表示从当前位置往后移动x个字符

seek(-x,2):表示从文件的结尾往前移动x个字符

from_what 值为默认为0,即文件开头。

#!/usr/bin/python3

# 打开一个文件
f = open('aa.txt', 'rb+')

# 移动到文件的第六个字节
f.seek(1)
a = f.read(1)
print(a)

# 移动到文件的倒数第一字节
f.seek(-1, 2)
a = f.read(1)
print(a)

close():关闭文件并释放系统的资源

文件操作结束后需要关闭,因为文件对象会占用操作系统的资源,用完需要及时释放。

当处理完一个文件后,需要调用 close() 来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常。

在文件读写时都有可能产生IOError,出错后,后面的close()函数就不会调用了。为了保证无论是否出错都能正确地关闭文件,我们使用try ... finally语句。

#!/usr/bin/python3

try:
# 打开一个文件
f = open('aa.txt', 'r')
print(f.read())
finally:
if f:
f.close()

Python的with语句来自动帮我们调用close()方法

#!/usr/bin/python3

# 打开一个文件
with open('aa.txt', 'r') as f:
print(f.read())

 

 

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。