下面是对“Python文件和目录操作详解”的完整攻略:
Python文件和目录操作详解
一、文件操作
1.1 打开文件
在 Python 中,我们可以使用内置的 open 函数来操作文件。其语法形式为:
f = open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
具体参数介绍如下:
- file:要打开的文件路径(必选参数)。
- mode:文件的访问模式(可选参数),默认值为 'r'。具体取值如下:
- r:只读模式,打开文件后只能读取文件内容,不能写入、修改文件。
- w:写入模式,打开文件后如果文件已经存在,则清空原有内容。如果文件不存在,则创建一个新文件。
- a:追加模式,打开文件后从文件末尾开始写入。如果文件不存在,则创建一个新文件。
- x:独占模式,新建一个文件,如果文件已经存在则报错。
- b:二进制模式,与其他模式连用,例如 rb、wb、ab。
- +:读写模式,与其他模式连用,例如 r+、w+、a+。
- buffering:缓冲大小(可选参数),默认值为 -1。
- encoding:文件编码(可选参数),例如 'utf-8'。
- errors:编码错误处理方式(可选参数)。
- newline:换行符(可选参数)。Python 3.x 中 newline 为换行符,而不是 Python 2.x 中的换行符和回车符组合的字符串 '\r\n'。
- closefd:是否关闭文件描述符(可选参数),默认值为 True。
- opener:打开文件时使用的自定义函数(可选参数)。
下面演示打开一个文件,并读取文件内容:
# 打开文件,创建文件对象
file = open('test.txt', mode='r', encoding='utf-8')
# 读取文件内容
content = file.read()
print(content)
# 关闭文件
file.close()
1.2 读取文件
打开文件后,我们可以从文件中读取数据。常用的读取文件的方法有以下几种:
- read([size]):一次性读取 size 个字符或字节。如果不指定 size,则读取整个文件。
- readline():读取文件的一行内容。
- readlines():返回文件每一行内容的列表。
有以下示例代码:
# 打开文件,创建文件对象
file = open('test.txt', mode='r', encoding='utf-8')
# 读取文件内容
# 一次性读取整个文件
content = file.read()
print(content)
# 逐行读取文件,返回一个生成器
lines = file.readlines()
for line in lines:
print(line)
# 关闭文件
file.close()
1.3 创建文件
我们可以使用 open 函数创建文件,如果文件不存在,则会自动创建。如果文件已经存在,则会清空原有内容。
# 创建文件对象,如果文件不存在,则创建一个新文件;如果文件已经存在,则清空原有内容
file = open('test.txt', mode='w', encoding='utf-8')
# 向文件中写入内容
file.write('hello world')
# 关闭文件
file.close()
1.4 写入文件
如果我们想向文件中写入数据,则可以使用以下方法:
- write(string):将字符串 string 写入文件。
# 创建文件对象,如果文件不存在,则创建一个新文件;如果文件已经存在,则清空原有内容
file = open('test.txt', mode='w', encoding='utf-8')
# 向文件中写入内容
file.write('hello world')
# 关闭文件
file.close()
1.5 删除文件
我们可以使用以下函数删除文件:
- os.remove(path):删除指定路径的文件。
import os
if os.path.exists('test.txt'):
os.remove('test.txt')
二、目录操作
2.1 创建目录
我们可以使用以下函数创建目录:
- os.mkdir(path):创建一个目录,如果该目录已经存在则会抛出异常。
import os
# 在当前目录下创建一个名为 dir 的目录
if not os.path.exists('dir'):
os.mkdir('dir')
2.2 删除目录
如果我们想删除一个目录,则可以使用以下函数:
- os.rmdir(path):删除指定目录,只能删除空目录。
import os
# 删除当前目录下名为 dir 的目录
if os.path.exists('dir'):
os.rmdir('dir')
2.3 列出目录下的文件和目录
我们可以使用以下函数列出指定目录下的文件和目录:
- os.listdir(path):返回指定目录下所有文件和目录的列表。
import os
# 列出当前目录下的所有文件和目录
files = os.listdir('.')
for f in files:
print(f)
2.4 递归遍历目录
如果我们需要递归地遍历一个目录以及子目录下的所有文件和目录,则可以使用以下函数:
- os.walk(path):返回一个生成器,在遍历目录时依次返回当前目录、该目录下的子目录以及该目录下的所有文件,每个元组包含 3 项,分别为当前目录的路径、当前目录下所有子目录的名称列表、当前目录下所有文件的名称列表。
import os
# 递归遍历当前目录以及子目录下的所有文件和目录
for root, dirs, files in os.walk('.'):
print('当前目录:', root)
print('当前目录下的子目录:', dirs)
print('当前目录下的文件:', files)
以上就是 Python 文件和目录操作的详细介绍和示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python文件和目录操作详解 - Python技术站