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