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_gidID
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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92675.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92675.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92675.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uni-app 網絡請求終極選型:uni.request、axios、uni-network、alova 誰才是你的真命請求庫?

還在 uni-app 里手寫 uni.request 然后自己封裝到懷疑人生&#xff1f; 想用 axios 卻擔心小程序 2 MB 主包瞬間爆炸&#xff1f; 面對 alova、uni-network、axios 一臉懵&#xff0c;不知道選哪個才不踩坑&#xff1f; 這篇一次講透 4 大主流方案優缺點、適用場景和避坑指南&a…

2G內存的服務器用寶塔安裝php的fileinfo拓展時總是卡死無法安裝成功的解決辦法

臨時加大 Swap&#xff08;4G&#xff09; fallocate -l 4G /swapfile2 chmod 600 /swapfile2 mkswap /swapfile2 swapon /swapfile2 free -h確認現在有了足夠的 swap&#xff08;總內存 swap 應該達到 6G&#xff09;&#xff1a; free -h編譯 fileinfo 擴展&#xff08;只用…

DAY 41 簡單CNN

知識回顧 數據增強卷積神經網絡定義的寫法batch歸一化&#xff1a;調整一個批次的分布&#xff0c;常用與圖像數據特征圖&#xff1a;只有卷積操作輸出的才叫特征圖調度器&#xff1a;直接修改基礎學習率 卷積操作常見流程如下&#xff1a; 1. 輸入 → 卷積層 → Batch歸一化層…

Flink 2.1 SQL:解鎖實時數據與AI集成,實現可擴展流處理

摘要&#xff1a;本文整理自阿里云的高級技術專家、Apache Flink PMC 成員李麟老師在 Flink Forward Asia 2025 新加坡[1]站 —— 實時 AI 專場中的分享。將帶來關于 Flink 2.1 版本中 SQL 在實時數據處理和 AI 方面進展的話題。Tips&#xff1a;點擊「閱讀原文」跳轉阿里云實時…

運維巡檢單(文檔)

1 運維巡檢表格 1.1 每日巡檢記錄單 1.2 周巡檢報告 1.3 季度巡檢報告 1.4 遠程服務記錄單 1.5 現場維護記錄單 1.6 現場運維巡檢服務單 1.7 服務器巡檢記錄 1.8 網絡設備巡檢記錄 1.9 視頻會議系統檢測表 1.10 機房巡檢報告 1.11 運維服務統計表 1.12 運維服務交接…

BLDC直流無刷電機工作原理

1.介紹什么是BLDC&#xff1f;BLDC&#xff08;Brushless Direct Current Motor&#xff0c;無刷直流電機&#xff09;是一種采用電子換向替代傳統機械電刷和換向器的直流電機&#xff0c;兼具直流電機的調速性能和交流電機的結構優勢在這之前我們先了解一般電機的分類以及直流…

Rust 實戰四 | Traui2+Vue3+Rspack 開發桌面應用:通配符掩碼計算器

往期回顧 Rust 實戰三 | HTTP 服務開發及 Web 框架推薦Rust 實戰二 | 開發簡易版命令行工具 grepRust 實戰一 | 用 RustRover 開發猜數字游戲Rust 安裝與版本更新 代碼開源地址&#xff1a;https://github.com/0604hx/rust-journey、通配符掩碼計算器 學習一門編程語言&#…

大型語言與進化算法潛在研究方向與挑戰

[1] WANG C, ZHAO J, JIAO L, 等. When Large Language Models Meet Evolutionary Algorithms: Potential Enhancements and Challenges[A/OL]. arXiv, 2025[2025-08-07]. http://arxiv.org/abs/2401.10510. DOI:10.48550/arXiv.2401.10510. 這篇文章《當大型語言模型遇到進化算…

計算二分類誤差時的常見錯誤及解決方案

計算二分類誤差時的常見錯誤及解決方案 在二分類任務中使用 error sum(y ! (y_hat > 0.5)) 計算分類錯誤時&#xff0c;可能遇到以下問題及解決方案&#xff1a; 1. 數據類型不匹配錯誤 問題&#xff1a;真實標簽 y 和預測值 y_hat 的數據類型不一致&#xff08;如 y 是整數…

uniapp-vue2導航欄全局自動下拉變色

全局自動下拉變色解決方案 雀語文章地址 &#x1f4d6; 項目簡介 這是一個基于 Vue.js 和 uni-app 的全局自動下拉變色解決方案&#xff0c;通過全局 mixin 實現頁面滾動時導航欄的自動顏色變化效果。 ? 核心特性 ● &#x1f3af; 全局自動生效&#xff1a;無需在每個頁面手動…

自有域名功能詳解——安全可控的企業級訪問方案

ZeroNews 推出自有域名穿透功能&#xff0c;支持用戶將已備案域名與內網服務綁定&#xff0c;實現專業級訪問控制。本文將系統解析其核心能力與操作邏輯。功能價值1. 所有權掌控使用企業自有域名而非第三方子域名&#xff0c;強化品牌一致性及管理權限。2. 安全合規強制 TLS 加…

Python驅動的無人機多光譜-點云融合技術在生態三維建模與碳儲量/生物量/LULC估算中的全流程實戰

隨著生態學、林學、地理信息科學等多個學科對“結構—功能”一體化研究的共同推進&#xff0c;無人機多光譜與結構光攝影測量&#xff08;SfM&#xff09;技術已經從早期實驗室驗證階段&#xff0c;走向區域尺度精細生態監測與資源清查的主流工具。過去十年&#xff0c;厘米級空…

JDY-31藍牙SPP串口透傳模塊

一、產品簡介與應用 JDY-31藍牙基于藍牙3.0 SPP設計&#xff0c;這樣可以支持Windows、Linux、android數據透傳&#xff0c; 工作頻段2.4GHZ&#xff0c;調制方式GFSK&#xff0c;最大發射功率8db&#xff0c;最大發射距離30米&#xff0c;支持用戶通過 AT命令修改設備名、波特…

模塊--繼電器

繼電器模塊詳解 繼電器,是一種常見的電控置裝置,其應用幾乎無處不在。在家庭生活中,繼電器被廣泛應用于照明系統,電視機,空調等電器設備的控制,在工業領域,它們用于控制電機,泵站,生產等高功率設備的運行;繼電器還在通信網絡,交通系統以及醫療設備中發揮著重要作用。…

Error: error:0308010C:digital envelope routines::unsupported at new Hash

1.報錯 這個錯誤通常與 Node.js 的版本有關。從報錯信息中可以看到&#xff0c;使用的 Node 版本是 v22.2.0。 該錯誤是因為 Node.js v17 及以上版本使用了 OpenSSL 3.0&#xff0c;而一些舊的加密算法或方式在 OpenSSL 3.0 中不再支持。 在項目中&#xff0c;通常是因為 webpa…

OpenAI開發者平臺快速入門與API實踐指南

OpenAI開發者平臺快速入門與API實踐指南 一、平臺簡介 OpenAI開發者平臺為開發者提供了強大的人工智能API接口&#xff0c;能夠在短時間內實現文本生成、圖像識別、音頻處理等多種AI能力。本文將詳細介紹如何快速上手&#xff0c;發起API請求&#xff0c;并討論模型選型、功能…

從 GPT?2 到 gpt?oss:解析架構的迭代

From GPT-2 to gpt-oss: Analyzing the Architectural Advances 原文 https://magazine.sebastianraschka.com/p/from-gpt-2-to-gpt-oss-analyzing-the OpenAI 本周剛發布了兩款新的開放權重的大語言模型&#xff1a;gpt-oss-120b 和 gpt-oss-20b&#xff0c;這是自 2019 年 GP…

一周學會Matplotlib3 Python 數據可視化-線條 (Line)

鋒哥原創的Matplotlib3 Python數據可視化視頻教程&#xff1a; https://www.bilibili.com/video/BV1UhtuzcEqX/ 課程介紹 本課程講解利用python進行數據可視化 科研繪圖-Matplotlib&#xff0c;學習Matplotlib圖形參數基本設置&#xff0c;繪圖參數及主要函數&#xff0c;以及…

09-netty基礎-手寫rpc-原理-01

netty系列文章&#xff1a; 01-netty基礎-socket02-netty基礎-java四種IO模型03-netty基礎-多路復用select、poll、epoll04-netty基礎-Reactor三種模型05-netty基礎-ByteBuf數據結構06-netty基礎-編碼解碼07-netty基礎-自定義編解碼器08-netty基礎-自定義序列化和反序列化09-n…

Windows 小知識:Winodws 文件與文件夾名不區分大小寫

專欄導航 上一篇&#xff1a;Windows 編程輔助技能&#xff1a;速覽定義 回到目錄 下一篇&#xff1a;無 本節前言 本節來分享一個小的知識點&#xff0c;具體地&#xff0c;我們在下面來細說。 一. Windows 系統的文件與文件夾的名字&#xff0c;不區分大小寫 請大家…