Python 程序设计讲义(68):Python 的文件操作——使用os模块操作文件
Python 程序设计讲义(68):Python 的文件操作——使用os模块操作文件
目录
- Python 程序设计讲义(68):Python 的文件操作——使用os模块操作文件
- 一、删除文件:使用`os.remove()`函数
- 二、重命名文件与目录:使用`os.rename()`函数
- 三、获取文件的基本信息:使用`os.stat()`函数
内置的os
模块除了可以对目录进行操作,还可以对文件进行操作。比如:查看与修改文件权限,重命名文件与目录,删除文件与目录等。
os
模块提供的与文件有关的函数如下表所示:
函数 | 说明 |
---|---|
access(path,accessmode) | 判断对文件是否有指定的访问权限(读取、写入、执行权限)。accessmode 的值是R_OK (读取)、W_OK (写入)、X_OK (执行)、F_OK (存在)。如果有指定的权限,则返回1 ,否则返回0 。 |
chmod(path,mode) | 修改path 指定文件的访问权限。 |
remove(path) | 删除path 指定的文件路径。 |
rename(src,dst) | 将文件或目录src 重命名为dst 。 |
stat(path) | 返回path 指定文件的信息。 |
startfile(path[,operation]) | 使用关联的应用程序打开path 指定的文件。 |
一、删除文件:使用os.remove()
函数
remove()
函数的语法格式如下:
os.remove(path)
说明:
path为要删除的文件路径,可以是绝对路径,也可以是相对路径。
例如:
import os
os.chdir(r"d:\python示例")
print(os.listdir(r"d:\python示例"))
os.remove("hello.txt") #删除文件
os.remove("hello - 副本.txt") #删除文件
print(os.listdir(r"d:\python示例"))程序的运行结果为:
['college.csv', 'dir123', 'dir20250809', 'hello - 副本.txt', 'hello.txt', 'hello001.txt', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']
['college.csv', 'dir123', 'dir20250809', 'hello001.txt', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']
如果要删除的文件不存在,则会抛出异常。
例如:
import os
os.chdir(r"d:\python示例")
print(os.listdir(r"d:\python示例"))
os.remove('abc.txt')程序的运行结果为:
['c113.csv', 'dir20250809', 'hello001.txt', 'mydir123', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']
Traceback (most recent call last):File "C:\Users\wgx58\PycharmProjects\PythonProject1\hello.py", line 4, in <module>os.remove('abc.txt')~~~~~~~~~^^^^^^^^^^^
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'abc.txt'
因此,在删除文件之前应该先判断文件是否存在,如果存在才删除。
例如:
import os
os.chdir(r"d:\python示例")
print(os.listdir(r"d:\python示例"))
if os.path.exists('abc.txt'):os.remove('abc.txt')
else:print("要删除的文件不存在")程序的运行结果为:
['c113.csv', 'dir20250809', 'hello001.txt', 'mydir123', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']
要删除的文件不存在
二、重命名文件与目录:使用os.rename()
函数
使用rename()
函数是,如果指定的参数src
是文件,则重命名文件,如果是目录,则重命名目录。
rename()
函数的语法格式如下:
os.rename(src,dst)
例如:
import os
os.chdir(r"d:\python示例")
print(os.listdir(r"d:\python示例"))
os.rename('college.csv','c113.csv') #重命名文件
os.rename('dir123','mydir123') #重命名目录
print(os.listdir(r"d:\python示例"))程序的运行结果为:
['college.csv', 'dir123', 'dir20250809', 'hello001.txt', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']
['c113.csv', 'dir20250809', 'hello001.txt', 'mydir123', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']
在重命名文件或目录时,如果需要重命名的文件或目录不存在,则会抛出异常。
例如:
import os
os.chdir(r"d:\python示例")
print(os.listdir(r"d:\python示例"))
os.rename("abc.txt","wgx/txt")程序的运行结果为:
['c113.csv', 'dir20250809', 'hello001.txt', 'mydir123', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']
Traceback (most recent call last):File "C:\Users\wgx58\PycharmProjects\PythonProject1\hello.py", line 4, in <module>os.rename("abc.txt","wgx/txt")~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'abc.txt' -> 'wgx/txt'
因此,在重命名文件或目录之前应该先判断文件或目录是否存在,如果存在才重命名。
例如:
import os
os.chdir(r"d:\python示例")
print(os.listdir(r"d:\python示例"))
if os.path.exists("abc.txt"):os.rename("abc.txt","wgx/txt")
else:print("文件不存在")程序的运行结果为:
['c113.csv', 'dir20250809', 'hello001.txt', 'mydir123', 'python.png', 'stu.csv', 'wgx.txt', 'wgx123.txt']
文件不存在
三、获取文件的基本信息:使用os.stat()
函数
计算机上的文件本身会包含一些信息,如文件的最后一次访问时间、最后一次修改时间、文件大小等。使用os.stat()
函数可以获取文件的这些信息。
os.stat()
函数的语法格式如下:
os.stat(path)
stat()
函数返回的是一个对象,该对象包含如下表所示的属性。通过访问这些属性可以获取文件的基本信息。
stat()
函数返回的对象的常用属性:
属性 | 说明 |
---|---|
st_mode | 保护模式 |
st_ino | 索引号 |
st_nlink | 硬链接号 |
st_size | 文件大小(单位为字节) |
st_mtime | 最后一次修改时间 |
st_dev | 设备名 |
st_uid | 用户ID |
st_gid | 组ID |
st_atime | 最后一次访问时间 |
st_ctime | 最后一次状态变化的时间 |
例如:
import os
os.chdir(r"d:\python示例")
print(os.listdir())
obj1=os.stat('stu.csv')
print("文件大小为:",obj1.st_size)
print("最后一次修改时间:",obj1.st_mtime)
print("最后一次访问时间:",obj1.st_atime)程序的运行结果为:
文件大小为: 136
最后一次修改时间: 1754701220.220549
最后一次访问时间: 1754701220.220549