首頁 後端開發 Python教學 Python詳解os模組和shutil模組

Python詳解os模組和shutil模組

Mar 03, 2021 am 11:01 AM
os模組 python

Python詳解os模組和shutil模組

文章目錄

  • 檔案的處理
    • 取得系統類型
    • 取得系統環境
    • 執行系統指令
    • 操作目錄與檔案
  • #檔案與目錄高階處理
    • #複製檔
    • 移動檔
    • 讀取壓縮及歸檔壓縮檔
    • #解壓縮檔
  • ##小結
(相關免費學習推薦:

python影片教學

#os模組和shutil模組是Python處理文件/目錄的主要方式。 os模組提供了一種使用作業系統相關功能的便捷方式,shutil模組是一種進階的檔案/目錄操作工具。

檔案的處理

os#模組提供了一些便利功能來使用作業系統資源,例如讀取資源目錄下的文件、在命令列查看某路徑下文件的所有內容等。

取得系統類型


對程式碼進行相容性開發以適應不同作業系統時透過作業系統類型進行判斷就可以輕鬆解決。

import osimport sysprint(os.name)  # 返回nt代表Windows,posix代表Linuxprint(sys.platform)  # 更详细信息
登入後複製

Python詳解os模組和shutil模組

取得系統環境


#對環境變數進行相關設定時,常常會呼叫模組

environ 模組。 os.environ是以字典的形式傳回系統環境變量,要取得具體的屬性值,可以用索引,也可以用方法getenv()

import osprint(os.environ)print(os.environ['PATH'])print(os.getenv('PATH'))
登入後複製

Python詳解os模組和shutil模組

執行系統指令


使用os模組

system()方法可以執行shell指令,正常執行會傳回0。使用格式是os.system("bash command")

當非控制台編寫時,

system()只會呼叫系統指令而不會執行,執行結果可透過popen()函數傳回 file物件進行讀取獲得。

import os
os.system('ping www.baidu.com')os.popen('ping www.baidu.com').read()
登入後複製

Python詳解os模組和shutil模組

操作目錄與檔案


#使用os模組操作目錄和檔案時Python開發最常見的功能之一。

##os.path.split(path)將路徑分解為(資料夾,檔案名稱)os.path.join(path1,path2)將路徑組合os.path.dirname(path)取得path中的資料夾部分#os.path.basename( path)取得path中的檔名os.path.exists(path)判斷檔案或資料夾是否存在os.path.isfile(path)#判斷路徑是否為檔案os.path.isdir(path)判斷路徑是否為目錄## os.path.getsize(path)#os.path.getctime(path)os.path.getatime(path)os.path.getmtime(path)os.sep()os.extsep()#os.pathsep()os.linesep()#

插播反爬信息 )博主CSDN地址:https://wzlodq.blog.csdn.net/

文件和目录高级处理

相比os模块,shutil模块用于文件和目录的高级处理,提供了支持文件赋值、移动、删除、压缩和解压等功能。

复制文件


shutil模块的主要作用是赋值文件,大概有以下七种实现:

  1. shutil.copyfileobj(file1,file2)覆盖复制
    将file1的内容覆盖file2,file1、file2表示打开的文件对象。

  2. shutil.copyfile(file1,file2)覆盖复制
    也是覆盖,但是无须打开文件,直接用文件名进行覆盖(其源码还是调用的copyfileobj)。

  3. shutil.copymode(file1,file2)权限复制
    仅复制文件权限,不更改文件内容、组和用户,无返回对象。

  4. shutil.copystart(file1,file2)状态复制
    复制文件的所有状态信息,包括权限、组、用户和时间等,无返回对象。

  5. shutil.copy(file1,file2)内容和权限复制
    复制文件的内容和权限,相当于先执行了copyfile再执行了copysmode。

  6. shutil.copy2(file1,file2)内容和权限复制
    复制文件的内容及所有状态信息,相当于先执行了copyfile再执行了copystart。

  7. shutil.copytree()递归复制
    递归地复制文件内容及状态信息

移动文件


使用函数shutil.move()函数可以递归地移动文件或重命名,并返回目标,若目标是现有目录则src再当前目录移动;若目标已经存在且不是目录,则可能会被覆盖。
Python詳解os模組和shutil模組
Python詳解os模組和shutil模組

读取压缩及归档压缩文件


使用函数shutil.make_archive()创建归档文件,并返回归档后的名称。
语法如下:
shutil.make_archive(base_name,format[,root_dir[,base_dir[,verbose[,dry_run[,owner[,group[,logger]]]]]]])

  • base_name为需要创建的文件名,包括路径
  • format表示压缩格式,可选zip、tar或bztar等
  • root_dir为归档的目录
import shutil
path_1 = r'D:\PycharmProjects\Hello'path_2 = r'D:\PycharmProjects\Hello\shutil-test'new_path = shutil.make_archive(path_2,'zip',path_1)print(new_path)
登入後複製

Python詳解os模組和shutil模組

解压文件


使用函数shutil.unpack_archive(filename[,extract_dir[,format]])分析拆档。

  • filename是归档的完整路径
  • extract_dir是解压归档的目标目录名称
  • format是解压文件的格式
import shutilimport os
shutil.unpack_archive('D:\PycharmProjects\Hello\shutil-test.zip','D:\\testdir')print(os.listdir('D:\\testdir'))
登入後複製

Python詳解os模組和shutil模組

小结


需要注意的是不同的操作系统中,路径分隔符不一样,在文件处理时需要考虑。也可以使用os.sep()来替代文件分隔符,因为操作系统而造成的程序异常。此外处理文件时往往需要注意文件权限,还有注意文件和文件夹的区别,使用递归等。

Python系列博客持续更新中

大量免费学习推荐,敬请访问python教程(视频)

方法 說明 範例
#os.getcwd() 取得目前目錄路徑 Python詳解os模組和shutil模組
os.chdir('目標路徑') 更改目前腳本目錄 Python詳解os模組和shutil模組
os.listdir(path) 列出目錄下所有檔案 Python詳解os模組和shutil模組
os.mkdir(path) 建立單一目錄 Python詳解os模組和shutil模組
os.makedirs(path) #建立多層目錄
os.rmdir(path) 刪除單級空目錄
os.removedirs( path) 刪除多層目錄
os.rename("檔案或目錄名稱",」目標名稱「) 重新命名目錄或檔案 Python詳解os模組和shutil模組
os.path.abspath() 取得絕對路徑 Python詳解os模組和shutil模組
若路徑字串最後一個字元是\,則只有文件夾部分有值;
若路徑字串中均無\,則只有檔案名稱部分有值;
若路徑字串有\且不再最後,則資料夾檔案名稱都有值。
Python詳解os模組和shutil模組
Python詳解os模組和shutil模組
Python詳解os模組和shutil模組
Python詳解os模組和shutil模組
Python詳解os模組和shutil模組
取得檔案或資料夾大小 Python詳解os模組和shutil模組
取得檔案或資料夾建立時間 Python詳解os模組和shutil模組
#取得檔案或資料夾最後存取時間 Python詳解os模組和shutil模組
取得檔案或資料夾最後修改時間 Python詳解os模組和shutil模組
路徑分割符 Python詳解os模組和shutil模組
檔案名稱與後綴之間的分割符
路徑分隔符號
#換行符號

以上是Python詳解os模組和shutil模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1652
14
CakePHP 教程
1413
52
Laravel 教程
1304
25
PHP教程
1251
29
C# 教程
1224
24
PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

sublime怎麼運行代碼python sublime怎麼運行代碼python Apr 16, 2025 am 08:48 AM

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

vs code 可以在 Windows 8 中運行嗎 vs code 可以在 Windows 8 中運行嗎 Apr 15, 2025 pm 07:24 PM

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

See all articles