在python中,读取文件内容用系统内置方法open()
open()的参数:
1、file:文件。
tips:若file文件和当前文件在同个文件夹内,直接填写文件名。若不在同个文件夹内,则填写完整路径(相对路径和绝对路径都可)
2、mode:模式。
3、buffering:缓存
4、encoding:编码
5、errors:(暂未了解)
6、newline: (暂未了解)
7、closefd:(暂未了解)
关于参数,不用死记硬背,了解常用的r,w,rb,wb等即可,需要用时回头查看即可。
open()方式返回一个文件流;
文件流的方法:
read():读取文件的所有内容
readable():判断是否可读,返回一个布尔值
readline():逐行读取
readlines():读取所有行,以列表形式返回。
栗子:
目录结构如下:fff.py和123.txt在同个目录中:
现在我们要在fff.py中读取123.txt的内容
file_stream = open("123.txt", "r", encoding="utf-8") file_content = file_stream.read() print(file_content)
步骤:
1、open()一个文件,给出文件路径(由于是在同个文件夹内,写上文件名即可),读取模式,以及编码
2、打开文件后会返回一个文件流,用一个变量接收(后续会将with 上下文管理,到时候就可以不用变量来显式接收)
3、文件流调用read()方法,获取文件内容。
响应结果:
this is a txt file hello world hello my honey
readable栗子:
file_stream = open("123.txt", "r", encoding="utf-8") print(file_stream.readable())
返回结果:
True
说明文件是可读的
readline栗子:
file_stream = open("123.txt", "r", encoding="utf-8") print(file_stream.readline()) print("-----") print(file_stream.readline())
打印结果:
this is a txt file ----- hello world
我们可以看到,每调用一次readline()就会读取一行数据。
tips:readline()有一个选填参数limit,表示读多少个字符,默认为-1,即读取所有。
我们来看一下:
file_stream = open("123.txt", "r", encoding="utf-8") print(file_stream.readline(2))
执行结果:
th
我们可以看到,加上limit参数“2”后,只读取了2个字符。
readlines栗子:
file_stream = open("123.txt", "r", encoding="utf-8") print(file_stream.readlines())
结果:
[‘this is a txt file\n‘, ‘hello world\n‘, ‘hello my honey‘]
我们可以看到,返回了一个列表,列表中的每个参数都是一行(换行符也包括在内)
tips: 直接用open()方法打开一个文件流后,最后要关闭文件流,不然会造成内存的泄露。
原文:https://www.cnblogs.com/ctltest/p/14643561.html