由文件打开操作可以知道:打开文件成功后会返回一个文件对象,对文件的读取可通过3种方法对
该对象来操作
f1 = open('test.txt',mode="r",encoding="utf-8") #打开当前目录下的 test.txt文件
f2 = open('../test.txt') #打开上级目录下的 test.txt文件
f3 = open('D:/python/test.txt') #打开D:/python目录下的test.txt文件
f1 = open("文件名","打开文件的模式") #需要对象名.close()关闭
#with open("文件名","打开文件的模式") as f1:
一.read()方法
文件对象.read([size]) #从文件中读取size个字节或字符作为结果返回,
若省略size,则表示读取所有内容
例子:
with open("test",'r') as f1:
# f1 = open("test",mode='r')
mess = f1.read(2)
mess1 = f1.read()
# mess2 = f1.readline()
# mess3 = f1.readlines()
print(mess)
print("*"*50)
print(mess1)
结果:
回头
**************************************************
科科欢迎大家!
2020.3.30
第三行
第四行
第五行
第六行
这里是为什么呢?为什么科科前面的回头哪里了?
因为这里的mess先读取到2个字符组成的字符串,赋值给mess
然后读取剩下的字符串赋值给mess1
二.readline()方法该方法可以逐行读取文件内容
该方法可以逐行读取文件内容,语法格式如下:
文件对象.readline() # 从文件中读取一行内容作为结果返回。
例子:
with open("test",'r') as f1:
# f1 = open("test",mode='r')
mess = f1.read(2)
# mess1 = f1.read()
mess2 = f1.readline()
# mess3 = f1.readlines()
print(mess)
print("*"*50)
# print(mess1)
print("*"*50)
print(mess2)
结果:
回头
**************************************************
**************************************************
科科欢迎大家!
这里输出结果和上方read的红字解释意义相同!!!!!
三.readlines()方法可以读取文件中所有行
可以读取文件中所有行,语法格式如下:
文件对象.readlines() # 将文件中的每行内容作为一个字符串存入列表中,
并返回该列表
注意
- readlines()方法一次性读取文件中所有行,如果文件非常大,使用该方法会占用大量的内存空间,读取的过程也比较长,所以不建议对大文件使用该方法
例子:
with open("test",'r') as f1:
# f1 = open("test",mode='r')
mess = f1.read(2)
# mess1 = f1.read()
mess2 = f1.readline()
mess3 = f1.readlines()
print(mess)
print("*"*50)
# print(mess1)
print("*"*50)
print(mess2)
print("*"*50)
print(mess3)
结果:
回头
**************************************************
**************************************************
科科欢迎大家!
**************************************************
['2020.3.30\n', '第三行\n', '第四行\n', '第五行\n', '第六行']
这里输出结果和read的红字解释意义相同!!!!!
四.in关键字
可以使用 in关键字读取文件
例子:
with open("test","r") as f1:
for ling in f1:
print(ling)
结果:
回头科科欢迎大家!
2020.3.30
第三行
第四行
第五行
第六行