Python合集之文件操作(三)

1.读取指定字符

文件对象提供了 read()方法,读取指定个数的字符。

file.read([size])
参数说明:
file:为打开的文件对象
size:可选参数,用于指定要读取的字符个数,如果要省略,则一次性读取所有内容。

注:在调用read()方法读取文件内容的前提是在打开文件时,指定的打开模式为r 或者 r+。

例如:

with open('message.txt','r') as file :
    string=file.read(9)
    print(string)

使用read(size)方法读取文件时,是从文件的开头读取的,如果想要读取部分内容,可以先使用文件对象的seek()方法将文件的指针移动到新的位置,然后再应用read(size)方法读取。seek()方法的基本语法格式如下:

file.seek(offset[,whence])
参数说明:
file:表示已经打开的文件对象
offset:用于指定移动的字符个数,其具体位置与whence参数有关
whence:用于指定从什么位置开始计算。值为0表示从文件开头开始计算,值为1表示从当前位置开始计算。值为2表示从文件尾开始计算,默认为0.

注:对于whence参数,如果想要打开文件时,没有使用b模式,那么只允许从文件头开始计算相应位置,从文件尾计算时会抛出异常信息。

例如:

with open('message.txt','r') as file:
    file.seek(19)
    string=file.read(13)
    print(string)

注:在使用seek()方法时,如果采用GBK编码,那么offest的值是按一个汉字占两个字符计算,而采用UTF-8编码则是一个汉字占3个字符,不过无论采用何种编码英文和数字都是按一个字符计算的。

2.读取一行

在使用read()方法读取文件时,如果文件很大,一次读取全部内容到内存,容易造成内存不足,所以通常采用逐行读取,文件对象提供了 readline()方法用于每次读取一行数据readline()方法的基本语法格式如下;

file.readline()

例如:

print("
","="*35,"蚂蚁庄园动态","="*35,"
")
with open('message.txt','r') as file:
    number=0
    while True:
        number+=1
        line=file.readline()
        if line=='':
            break
        print(number,line,end="
")
print("
","="*39,"over","="*39,"
")

3.读取全部行

读取全部行的作用同调用read()方法不指定size类似,只不过读取全部行时,返回的是一个字符串列表,每个元素为文件的一行内容。读取全部行,使用的是文件对象的readlines()方法。

file.readlines()

例如:

print("
","="*25,"蚂蚁庄园动态","="*25,"
")
with open('message.txt','r') as file:
    message=file.readlines()
    print(message)
    print("
","="*29,"Over","="*29,"
")

花絮:

本期的Python文件的处理就分享到这里,下期我们将继续分享Python文件目录的相关知识,感兴趣的朋友可以关注我。

同时也可以关注下我的个人 微信订阅号,园子里面的文章也会第一时间在订阅号里面进行推送跟更新。

原文地址:https://www.cnblogs.com/a-mumu/p/14725991.html