文件编码概念
编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑
编码有许多种,我们最常用的是UTF—8编码
文件的读取
对文件进行操作的基本步骤,大概可以分为三步
1、打开文件
2、读写文件
3、关闭文件
注意:可以只打开和关闭文件,不进行任何读写
open()打开函数
在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下
open(name,mode,encoding)
name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)
mode:设置打开文件的模式(访问模式):只读,写入,追加等
encoding:编码格式(推荐使用UTF-8)
实例:
f=open('python.txt','r',encoding="UTF-8") # encoding的顺序不是第三位,所以不能用位置参数,用关键字直接指定
注意:此时的'f'是open函数的文件对象,对象是Python中一种特殊的数据类型,拥有属性和方法,可以使用对象.属性或对象.方法对其进行访问。
mode常用的三种基础访问模式
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
w | 打开一个文件只用手写入。如果该文件已存在则打开文件,并从开头开始编辑, 原有内容会被删除,如果文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果文件已存在,新内容将会被写入到已有内容之后。 如果文件不存在,创建新文件进行写入。 |
读操作相关方法
read()方法:
文件对象.read(num)
num表示要从文件中读取的数据长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。
后面的read读取会从上一次read读取的结尾开始读取
readlines()方法:
readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
f=open('python.txt') content=f.readlines() #["hello world\n",'abcdefg\n','aaa\n','bbb\n','ccc'] print(content) #关闭文件 f.close()
readline():方法:一次读取一行内容
f=open('python.txt') content=f.readline() print(f'第一行:{content}') content=f.readline() print(f'第二行:{content}') # 关闭文件 f.close()
for循环读取文件行
for line in open("python.txt","r"): print(line) # 每一个line临时变量,就记录了文件的一行数据
close()关闭文件对象
f=open("python.txt","r") f,close() # 最后通过close,关闭文件对象,也就是关闭对文件的占用 # 如果不调用close,同时程序没有停止运行,那么这个文件将一直被python程序占用
补充:time.sleep(num)程序休眠一定时间
with open语法
with open("python.txt","r")as f: f.readlines() # 通过在with open的语句中对文件进行操作 # 可以在操作完成后自动关闭close文件,避免遗忘掉close方法
操作 | 功能 |
---|---|
文件对象=open(file,mode,encoding) | 打开文件获得文件对象 |
文件对象.read(num) | 读取指定长度字节 不指定num读取文件全部 |
文件对象.readline() | 读取一行 |
文件对象.readlines() | 读取全部行,得到列表 |
for line in 文件对象 | for循环文件行,一次循环得到一行数据 |
文件对象.close() | 关闭文件对象 |
with open()as f | 通过with open语法打开文件,可以自动关闭 |
笔记来源:哔哩哔哩"黑马程序员",若有侵权删。