Python学习之路-文件

发布时间:2024年01月16日

Python学习之路-文件

基本操作

Python 中要操作文件需要记住 1 个函数和 3 个方法

函数/方法说明
open打开文件,并且返回文件操作对象
read将文件内容读取到内存
write将指定内容写入文件
close关闭文件
  • open 函数负责打开文件,并且返回文件对象
  • read/write/close 三个方法都需要通过文件对象来调用

打开文件

open 函数默认以只读方式打开文件,并且返回文件对象。语法如下:

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

open函数的第一个参数是要打开的文件名(文件名区分大小写),如果文件存在返回文件操作对象,如果文件不存在,会抛出异常。

访问方式说明
r只读方式打开文件。文件的指针将会放在文件的开头,这是默认模式。如果文件不存在,抛出异常
w只写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件
a追加方式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入
r+读写方式打开文件。文件的指针将会放在文件的开头。如果文件不存在,抛出异常
w+读写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件
a+读写方式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入

{{< admonition tip “提示” true >}}

文件指针标记从哪个位置开始读取数据。第一次打开文件时,通常文件指针会指向文件的开始位置。

{{< /admonition >}}

关闭文件

close方法负责关闭文件。如果忘记关闭文件,会造成系统资源消耗,而且会影响到后续对文件的访问。语法如下:

file_name.close()

{{< admonition tip “提示” true >}}

在开发中,通常会先编写打开和关闭的代码,再编写中间针对文件的读/写操作!

{{< /admonition >}}

读取文件

read 方法可以一次性读入并返回文件的所有内容。当执行了read方法后,文件指针会移动到读取内容的末尾。

{{< admonition tip “提示” true >}}

如果执行了一次 read 方法,读取了所有内容,那么再次调用 read 方法不会读取到任何的内容

{{< /admonition >}}

补充

read 方法默认会把文件的所有内容一次性读取到内存,如果文件太大,对内存的占用会非常严重。使用readline 方法可以一次读取一行内容,方法执行后,会把文件指针移动到下一行,准备再次读取。

写入文件

write方法负责写入文件。语法如下:

# 打开文件
f = open("file_name", "w")

f.write("hello python!\n")

{{< admonition tip “提示” true >}}

频繁的移动文件指针,会影响文件的读写效率,开发中更多的时候会以只读、只写的方式来操作文件。

{{< /admonition >}}

管理操作

在终端与文件浏览器中可以执行常规的文件/目录的管理操作,例如:创建、重命名、删除、改变路径、查看目录内容等等,在 Python 中,如果希望通过程序实现上述功能,需要导入 os 模块

文件操作

序号方法名说明示例
01rename重命名文件os.rename(源文件名, 目标文件名)
02remove删除文件os.remove(文件名)

目录操作

序号方法名说明示例
01listdir目录列表os.listdir(目录名)
02mkdir创建目录os.mkdir(目录名)
03rmdir删除目录os.rmdir(目录名)
04getcwd获取当前目录os.getcwd()
05chdir修改工作目录os.chdir(目标目录)
06path.isdir判断是否是文件os.path.isdir(文件路径)

{{< admonition tip “提示” true >}}

文件或者目录操作都支持 相对路径和绝对路径

{{< /admonition >}}

编码格式

文本文件存储的内容是基于字符编码的文件,常见的编码有 ASCII 编码,UNICODE 编码等。Python 2.x 默认使用 ASCII 编码格式,Python 3.x 默认使用 UTF-8 编码格式。

{{< admonition tip “提示” true >}}

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

{{< /admonition >}}

文章来源:https://blog.csdn.net/geobuins/article/details/135622567
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。