一、文件编码的概念
1 . 什么是编码?
编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑。
编码有许多中,我们最常用的是 UTF -8编码
2 . 为什么需要使用编码?
计算机只认识0和1,所以需要将内容翻译成0和1才能保存在计算机中。同时也需要编码,将计算机保存的0和1,反向翻译回可以识别的内容。
3 . UTF -8是目前全球通用的编码格式
除非有特殊需求,否则,一律以 UTF -8格式进行文件编码即可。
二、文件打开
1 . open ()打开函数
在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新的文件,语法如下:
open(name,mode,encoding)
name :是要打开的目标文件名的字符串(可以包含文件所在的具体路径)
mode :设置打开文件的模式(访问模式):只读、写入、追加等
encoding :编码格式(推荐使用 UTF -8)
示例代码:
f = open (' python . txt ',' r ', encoding =" UTF -8)
# encoding 的顺序不是第三位,所以不能用位置参数,用关键字参数直接指定
(注意:此时的 f 是 open 函数的文件对象,对象是 Python 中一种特殊的数据类型,拥有属性和方法,可以使用对象.属性或对象.方法对其进行访问。)
2 . mode常用三种基础访问模式
- r : 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
- w . 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,原有内容会被删除。如果该文件不存在,创建新文件。
- a . 打开一个文件用于追加。如果该文件已存在,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
三、文件读取
1 . 读操作相关方法
read()方法:
文件对象 . read ( num )
num 表示要从文件中读取的数据的长度(单位是字节),如果没有传入 num ,那么就表示读取文件中所有的数据。
readlines ()方法:
readlines 可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
f = open (' python . txt ')
content = f . readlines ()
#[' hello world \ n ',' abcdefg \ n ',' aaa \ n ',' bbb \ n ',' ccc '] print ( content )
#关闭文件
f . close ()
2 . 在服务器中打开文件
假设有文件python.txt,使用内建的open函数打开文件
open() 函数返回文件对象,此对象有一个 read() 方法用于读取文件的内容:
f = open("python.txt", "r")
print(f.read())
3 . 只读取文件的一部分
默认情况下,read() 方法返回整个文本,但也可以指定要返回的字符数。
若返回文件中的前n个字符:
f = open("python.txt", "r")
print(f.read(n))
# n为未知数,返回文件中的前几个字符,n就是几
4 . 按行读取文件
使用 readline() 方法可以返回一行(读取文件的一行):
f = open("python.txt", "r")
print(f.readline())
两次调用 readline(),可以读取文件的前两行:
f = open("python.txt", "r")
print(f.readline())
print(f.readline())
通过循环遍历文件中的行,可以逐行读取整个文件:
f = open("python.txt", "r")
for x in f:
print(x)
5 . 关闭文件
完成后关闭文件:
f = open("python.txt", "r")
print(f.readline())
f.close()
(注:在某些情况下,由于缓冲,应该始终关闭文件,在关闭文件之前,对文件所做的更改可能不会显示。)