文件编码

编码技术:即将人类可以看懂的内容翻译成计算机可识别的二进制规则
常见的编码规则:

  • UTF-8
  • GBK
  • Big5

UTF-8是目前全球通用编码格式
计算机一般默认使用它

文件的操作

主要包括:

  • 打开
  • 关闭
  • 读取
  • 写入

一般对文件操作的流程:

  1. 打开文件
  2. 读写文件
  3. 关闭文件

打开文件

使用open()函数

1
open(name,mode,encoding)
  • name:打开目标文件名的字符串(可以包含文件所在的具体路径)
  • mode:设置打开文件的模式:只读、写入、追加等
  • encoding:编码格式(推荐使用UTF-8)

示例代码:

1
f = open('python.txt'.'r'encoding='UTF-8')

encoding的顺序不是第三位,所以不能使用位置参数,用关键字直接指定

fopen函数的文件对象,对象是python中特殊的数据类型,拥有属性和方法,可以使用对象.属性或对象. 方法进行访问

mode常用的三种模式

模式 描述
r 只读模式。文件指针在文件开头,默认模式
w 打开一个文件用于写入。如果文件已存在则打开文件,并从头开始编辑,原有内容会被删除
a 打开一个文件用于追加。如果文件已经存在,新内容会被写入到已有内容之后,如果内容不存在,创建新文件进行写入

读取文件

read()方法

文件对象.read(num)
num表示从文件中读取数据的长度(单位是字节),如果没有传入num,则读取所有数据

readlines()方法

文件对象.readlines()可以按照行方式把整个文件的内容进行一次性读取,并返回一个列表,其中每一行的数据为一个元素
样例:
['hello world\n', 'welcome\n', 'rminit home page']

readline()方法

文件对象.readline()一次读取一行数据

for循环读取文件行

1
2
for line in open("python","r"):
print(line)

文件关闭

文件对象.close()关闭文件对象

如果不关闭文件对象,同时程序没有停止运行,那么这个文件将被Python程序一直占用

with open()

示例:

1
2
with open("python.txt",'r') as f:
f.readlines()

通过with open() as f:可以在操作完成后自动关闭文件

文件写入

步骤:

  1. 打开文件
  2. 文件写入
  3. 内容刷新
  4. 关闭文件

write()写入

文件对象.write()
示例:

1
2
f = open('python.txt','w',encoding='UTF-8')
f.write("hello world")

调用write,内容并未真正写入文件,而是积攒在程序内存中,即缓存区buffer

flush()刷新

文件对象.flush()
只有调用flush之后,内容才会真正写入文件
这样做能避免频繁操作硬盘,导致效率下降