Python基础篇(八):文件和os、shutil模块

文件和os、shutil模块

  • 1. 文件
    • 1.1 打开文件
    • 1.2 写入文件
    • 1.3 读取文件内容
    • 1.4 关闭文件
    • 1.5 异常处理
  • 2. os模块
    • 2.1 获取当前工作目录
    • 2. 创建目录
    • 2.3 重命名文件或目录
    • 2.4 删除文件
    • 2.5 执行系统命令
  • 3. shutil模块
    • 3.1 复制文件
    • 3.2 移动文件
    • 3.3 复制目录(包括子目录和文件)
    • 3.4 删除目录(包括子目录和文件)
    • 3.5 归档压缩文件
    • 3.6 解压缩文件

1. 文件

在Python中,对文件进行操作通常涉及文件的打开、读取、写入和关闭等基本操作

1.1 打开文件

open() 函数用于打开文件,并返回一个文件对象,可以进行后续的读取和写入操作。
下面是 open() 函数的详细语法和示例:

语法:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

参数说明:

  • file:要打开的文件名或文件路径。
  • mode:打开文件的模式,默认为 'r',表示以只读方式打开文件。常见的模式有:
    • 'r':只读模式
    • 'w':写入模式,会先清空文件内容
    • 'a':追加模式,在文件末尾追加内容
    • 'x':独占写入模式,只能创建新文件,如果文件已存在则会抛出异常
  • buffering:缓冲设置,默认为 -1,使用系统默认的缓冲区大小。
  • encoding:指定文件的编码方式,常用的编码方式有 'utf-8''gbk' 等。
  • errors:指定编码错误的处理方式。
  • newline:用于控制文件的换行符处理。
  • closefd:设置为 False 时,将不会关闭底层文件描述符。
  • opener:用于自定义开启文件的方法。

示例一:以只读模式打开文件,并读取文件内容。

file = open("example.txt", "r")
content = file.read()
print(content)
file.close()

示例二:以写入模式打开文件,并写入内容。

file = open("output.txt", "w")
file.write("Hello, world!")
file.close()

示例三:以追加模式打开文件,并在文件末尾追加内容。

file = open("output.txt", "a")
file.write("Hello again!")
file.close()

示例四: with 语句关闭文件
为了确保文件正确关闭,也可以使用 with 语句来自动管理文件的打开和关闭。

with open("example.txt", "r") as file:
    content = file.read()
    print(content)
# 文件会在代码块结束后自动关闭,无需调用 close() 方法

操作:创建一个file.txt的文件

open('file.txt', mode='w',encoding='utf-8')

执行上述语句,在执行文件的同级目录下生成了file.txt文件
Python基础篇(八):文件和os、shutil模块_第1张图片

1.2 写入文件

写入函数:

  • write(str):将字符串写入文件,返回写入字符长度
  • writelines(s):向文件写入一个字符串列表

使用文件对象的write()方法可以向文件中写入内容。

示例:

file = open("output.txt", "w")
file.write("Hello, world!")  # 写入内容到文件
file.writelines(["Hello, world!","Hello, test!"])  # 写入内容到文件
file.close()

操作:将一篇古诗词写入file.txt的文件中

with open('file.txt', mode='w',encoding='utf-8') as wf:
     wf.write("不第后赋菊\n")
     wf.writelines(["待到秋来九月八,\n","我花开后百花杀。\n",
                    "冲天香阵透长安,\n","满城尽带黄金甲。\n"])
     wf.write("      --黄巢\n")

Python基础篇(八):文件和os、shutil模块_第2张图片

1.3 读取文件内容

示例一:一次性读取整个文件内容

 with open("file.txt", "r", encoding='utf-8') as wf:
 content = wf.read()  # 读取整个文件内容
 print(content)

Python基础篇(八):文件和os、shutil模块_第3张图片

示例二:逐行读取文件内容

with open("file.txt", "r", encoding='utf-8') as wf:
 for line in wf:
     print(line)

Python基础篇(八):文件和os、shutil模块_第4张图片

示例三:读取指定字节数

file = open("example.txt", "r")
content = file.read(10)  # 读取10个字节
print(content)
file.close()

Python基础篇(八):文件和os、shutil模块_第5张图片

1.4 关闭文件

在打开文件后,务必记得使用 close() 方法关闭文件,以释放资源

示例:

file = open("example.txt", "r")
# 读取文件内容
file.close()  # 关闭文件

为了确保文件正确关闭,也可以使用 with 语句来自动管理文件的打开和关闭。

示例:使用 with 语句打开文件。

with open("example.txt", "r") as file:
    content = file.read()
    print(content)
# 文件会在代码块结束后自动关闭,无需调用 close() 方法

1.5 异常处理

在进行文件操作时,最好使用异常处理来处理可能的错误情况,以确保文件正确关闭

示例:

try:
    file = open("example.txt", "r")
    # 进行文件操作
except FileNotFoundError:
    print("文件不存在")
finally:
    file.close()

Python基础篇(八):文件和os、shutil模块_第6张图片

2. os模块

os模块提供了许多与操作系统交互的函数,包括文件和目录操作、进程管理、环境变量等。

2.1 获取当前工作目录

import os

current_dir = os.getcwd()
print("当前工作目录:", current_dir)

Python基础篇(八):文件和os、shutil模块_第7张图片

2. 创建目录

import os

os.mkdir("新目录")

Python基础篇(八):文件和os、shutil模块_第8张图片

2.3 重命名文件或目录

import os

os.rename("旧文件.txt", "新文件.txt")

Python基础篇(八):文件和os、shutil模块_第9张图片

2.4 删除文件

import os

os.remove("要删除的文件.txt")

Python基础篇(八):文件和os、shutil模块_第10张图片

2.5 执行系统命令

import os

os.system("ls -l")

Python基础篇(八):文件和os、shutil模块_第11张图片

3. shutil模块

shutil模块提供了一些高级的文件操作函数,包括复制、移动和删除文件等。

3.1 复制文件

import shutil

shutil.copy("源文件.txt", "目标文件夹/")

Python基础篇(八):文件和os、shutil模块_第12张图片

3.2 移动文件

import shutil

shutil.move("要移动的文件.txt", "目标文件夹/")

Python基础篇(八):文件和os、shutil模块_第13张图片

3.3 复制目录(包括子目录和文件)

import shutil

shutil.copytree("新目录","新目录1")

Python基础篇(八):文件和os、shutil模块_第14张图片

3.4 删除目录(包括子目录和文件)

import shutil

shutil.rmtree("要删除的目录/")

Python基础篇(八):文件和os、shutil模块_第15张图片

3.5 归档压缩文件

import shutil

shutil.make_archive("归档文件", "zip", "要压缩的文件夹/")

Python基础篇(八):文件和os、shutil模块_第16张图片

3.6 解压缩文件

import shutil

shutil.unpack_archive("压缩文件.zip", "解压目标文件夹/")

Python基础篇(八):文件和os、shutil模块_第17张图片

以上示例展示了os模块和shutil模块的一些常见用法。这些模块提供了许多其他功能,如遍历目录、修改权限、获取文件信息等。
官方文档:os模块文档 和 shutil模块文档

你可能感兴趣的:(#,python学习,python,数学建模,开发语言,文件,os)