携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情
1. 大文件复制
大文件复制思路阐述:
- 大文件复制案例需要考虑使用按行读取操作来复制大文件,这样对内存占用比较小。
- 当然,使用到readline按行读取就需要使用到while循环来遍历文件。
- 当读取不到内容时,使用break跳出循环
2. 案例演示
为实现大文件复制操作,具体代码演示如下所示:
# 1.打开
file_read = open("README.md")
file_write = open("README[复件].md", "w")
# 2. 读,写
while True:
# 读取一行内容
text = file_read.readline()
# 判断是否读取到内容
if not text:
break
file_write.write(text)
# 3. 关闭
file_read.close()
file_write.close()
运行结果如下图所示:使用按行遍历操作,同样可以复制源文件,并输出到目标文件,打开目标文件就如下所示,达到了复制文件的效果。
3. 文本文件的编码格式
- 文本文件存储的内容是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等
- Python2.x默认使用
ASCII编码(不支持中文) - Python3.x默认使用
UTF-8编码
3.1 ASCII编码
- 计算机中只有256个ASCII字符
- 一个ASCII在内存中占用一个字节的空间
- 通常是早期使用的针对英文名的
Python2.x版本解释器不支持中文,那么怎么才能使其支持中文呢?
在Python2.x文件的第一行增加以下代码,解释器会以utf-8编码来处理python文件,以下这行单行注释就是告诉解释器在解析此文件时,请使用utf-8编码格式来解析。
# *-* coding:utf8 *-*
- 在Python2.x中,即使指定了文件使用UTF-8的编码格式,但是在遍历字符串时,仍然会以字节为单位遍历字符串
- 要能够正确的遍历字符串,在定义字符串时,需要在字符串的引号前,增加一个小写字母
u,告诉解释器这是一个unicode字符串(使用UTF-8编码格式的字符串)
3.2 UTF-8编码格式
- 计算机中使用1-6个字节来表示一个
UTF-8字符,涵盖了地球上几乎所有地区的文字 - 大多数汉字会使用3个字节表示
- UTF-8是UNICODE编码的一种编码格式