[python面向对象学习笔记九] 文件
发布日期:2021-05-07 00:09:14 浏览次数:24 分类:技术文章

本文共 2096 字,大约阅读时间需要 6 分钟。

1.文件的概念

计算机的文件就是,存储在某种长期存储设备上的一段 数据

长期存储设备:硬盘、U盘、光盘、移动硬盘…

CPU使用数据时。首先将磁盘中的数据,加载到内存。

文件的存储方式:文本文件(可以使用文本编辑器查看内容)、二进制文件(需要专门软件打开)。上述文件,都是以二进制的方式保存在磁盘上。

2.文件的基本操作

在计算机中操作文件有三个步骤:

1.打开文件
2.读写文件。读 将文件从磁盘加载到内存;写 将文件内容加载到磁盘。
3.关闭文件

在python中的1个函数和3个方法:

函数/方法 说明
open 打开文件,并且返回文件操作对象
read 将文件内容读取内存
write 将指定内容写入文件
close 关闭文件

open函数负责打开文件,若文件存在,返回文件对象;不存在,自动创建新文件。

read/write/close三个方法都需要通过文件对象来调用。

(1)read 方法

open 函数的第一个参数是要打开的文件名。
read 方法可以一次性读入并返回文件中的所有内容
读取完成后,一定记得close文件,否则会造成系统资源消耗。

# 1.打开文件file = open("README")# 2.读取文件内容text = file.read()print(text)# 3.关闭文件file.close()

注意:

文件指针标记从哪个位置读取数据。第一次打开文件时,文件指针通常指向文件开始的位置。当执行了read方法后,文件指针会移动到读取内容的末尾。

因此,执行了一次read后,再次调用read,不能获取内容。

(2)readline 方法

read 方法会一次性读取文件的全部内容,文件太大,占用内存严重。

readline 方法可以一次性读取一行内容。方法执行后,文件指针移动到下一行。

file = open("README", "r")while True:    text = file.readline()  # 逐行读取,空白行读取不到内容    # 判断是否读取到内容    if not text:        break    print(text)file.close()

(3)open方法

语法:

f = open("文件名", "访问方式")

若不传入访问方式,默认以 只读方式 打开文件。

访问方式 说明
r 只读
w 只写,会覆盖之前的内容
a 追加
# 1.打开文件file = open("README", "a")# 2.读取文件内容text = file.write("123hello")# 3.关闭文件file.close()

(4)文件读写案例-----复制文件

小文件的复制:打开一个已有文件,读取完整内容,写入到另一个文件。关闭两个文件。

# 1.打开文件file_read = open("README")file_write = open("README[复件]", "w")# 2.读、写text = file_read.read()file_write.write(text)# 3.关闭文件file_read.close()file_write.close()

大文件复制:打开一个已有文件,逐行读取内容,并顺序写入另一个文件。

# 1.打开文件file_read = open("README")file_write = open("README[复件2]", "w")# 2.读、写while True:    text = file_read.readline()   # 读取一行内容    if not text:        break    else:        file_write.write(text)    # 写入一行内容# 3.关闭文件file_read.close()file_write.close()

3.文件的常用管理操作

例如:创建、重命名、删除、改变路径、查看目录内容…

在python中,如果希望通过程序实现上述功能,需要导入 os 模块。

文件操作

示例 说明
os.rename(源文件名, 目标文件名) 重命名文件
os.remove(文件名) 删除文件
import osos.rename("README[复件]", "readme[复件]")os.remove("README[复件1]")

4.文本文件的编码格式

常见的编码:ASCII编码、UNICODE编码

python2.x 默认使用ASCII编码,不支持中文

python3.x默认使用UTF-8编码,支持中文

ASCII编码:计算机中只有256个ASCII字符。一个ASCII字符,在内存中占用1个字节的空间。1个字节,即8个二进制位,一共有256种排列组合。能够涵盖英文和数字等,但字符数量太少,不能支持中文。

UTF-8编码(一种常见的UNICODE编码格式):计算机中使用1-6字节来表示一个UTF-8字符,可以涵盖地球上几乎所有的文字。汉字大多数使用3个字节。

上一篇:[python面向对象学习笔记十] eval函数
下一篇:[python面向对象学习笔记八] 模块和包

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月05日 19时23分30秒