python---os模塊使用詳解

来源:http://www.cnblogs.com/God-Li/archive/2017/08/17/7384227.html
-Advertisement-
Play Games

os模塊調用操作系統介面的模塊 相關方法或屬性: getcwd() 獲取當前的操作目錄,等同於linux中的pwd命令。 調用:os.getcwd() chdir() 改變python腳本的工作目錄。 調用:os.chdir(path) (path以字元串形式傳入) 例如: curdir 當前目錄 ...


os模塊調用操作系統介面的模塊                          

  相關方法或屬性:

    getcwd() --- 獲取當前的操作目錄,等同於linux中的pwd命令。

      調用:os.getcwd()

    chdir() --- 改變python腳本的工作目錄。

      調用:os.chdir(path) (path以字元串形式傳入)

      例如:

>>> os.getcwd()
'C:\\Users\\BLUE'
>>> os.chdir('D:\\Program Files')
>>> os.getcwd()
'D:\\Program Files'
>>> os.chdir(r'C:\Users\BLUE')
>>> os.getcwd()
'C:\\Users\\BLUE'

    curdir --- 當前目錄   使用:os.curdir

    pardir --- 當前目錄的父目錄   使用: os.pardir

      例如:

>>> os.curdir
'.'
>>> os.pardir
'..'
>>> os.getcwd()
'C:\\Users\\BLUE'
>>> os.chdir(os.pardir)
>>> os.getcwd()
'C:\\Users'

    makedirs() --- 遞歸的創建目錄。

      調用:os.makedirs('dir_1/dir_2/dir_3/.../dir_n')

      例如:os.makedirs(r'C:\a\b\c\d')  #該操作會依次在C盤下創建a, b, c, d四個文件夾(若a目錄存在則只創建b,c,d三個目錄)。

    removedirs() --- 若當前目錄為空則刪除,並切換到父級目錄,若為空繼續刪除,依次遞歸。

      調用:os.removedirs('dir_1/dir_2/dir_3/.../dir_n')

      例如:os.removedirs(r'C:\a\b\c\d')  #該操作會依次在C盤下依次刪除d, c, b, a四個文件夾,如果中間某一級目錄不為空,則在該級停止刪除。

    mkdir() --- 創建單級目錄。

      調用:os.mkdir('dir_1/dir_2/dir_3/.../dir_n')

      例如:os.mkdir(r'C:\a\b\c\d')  #該操作會在C盤下創建d文件夾(若a, b, c目錄有一個不存在,則無法創建並報錯)。

    rmdir() --- 刪除單級空目錄。

      調用:os.rmdir('dir_1/dir_2/dir_3/.../dir_n')

      例如:os.rmdir(r'C:\a\b\c\d')  #若d目錄為空,該操作只刪除d目錄, 否則無法刪除並報錯。

    listdir() --- 以列表的形式列出制定目錄下的所有文件(包括隱藏文件),子目錄。

      調用:os.listdir(path)

      例如:(列出D盤下的所有文件)

>>> os.listdir(r'D:')
['Anaconda3', 'BaiduNetdisk', 'BHO', 'Data', 'guiminer', 'Intel', 'JetBrains', 'Profiles', 'Program', 'Tencent', 'Thunder', 'Thunder BHO Platform', 'UninstallXLWFP.exe', 'WinRAR', '騰訊游戲']

    remove() --- 刪除一個文件。

      調用:os.remove(path)

    rename() --- 對一個文件重命名。

      調用:os.rename(old_filename, new_filename)  #註意不能覆蓋已存在文件

    stat() --- 獲取文件或目錄的屬性信息。

      調用:os.stat(path)

      例如:

>>> os.stat(r'C:\Windows\regedit.exe')
os.stat_result(st_mode=33279, st_ino=281474976742063, st_dev=1893840342, st_nlink=2, st_uid=0, st_gid=0, st_size=321024, st_atime=1489870628, st_mtime=1489870628, st_ctime=1489870628)
>>> os.stat(r'C:\Windows')
os.stat_result(st_mode=16895, st_ino=281474976712108, st_dev=1893840342, st_nlink=1, st_uid=0, st_gid=0, st_size=32768, st_atime=1502900732, st_mtime=1502900732, st_ctime=1489837220)

    sep --- 使用os.sep獲取當前平臺的路徑的分隔符(目錄與子目錄之間)(例如windows下是r‘\’,Linux下時‘/’)。

    linesep --- 使用os.linesep獲取當前平臺的換行符(例如windows下是‘\r\n’,Linux下時‘\n’)。

    pathsep --- 使用os.pathsep獲取當前平臺文件路徑的分隔符(文件之間)(例如windows下是‘;’,Linux下時‘:’)。

    name --- 使用os.name獲取當前平臺名稱。

      例如:

>>> os.sep
'\\'
>>> os.linesep
'\r\n'
>>> os.pathsep
';'
>>> os.name
'nt'

    system() --- 執行系統命令。

      調用:os.system(command)

      例如:

>>> os.system('ping www.baidu.com')

正在 Ping www.A.sHiFeN.com [220.181.112.244] 具有 32 位元組的數據:
來自 220.181.112.244 的回覆: 位元組=32 時間=38ms TTL=55
來自 220.181.112.244 的回覆: 位元組=32 時間=38ms TTL=55
來自 220.181.112.244 的回覆: 位元組=32 時間=38ms TTL=55
來自 220.181.112.244 的回覆: 位元組=32 時間=37ms TTL=55

220.181.112.244 的 Ping 統計信息:
    數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
    最短 = 37ms,最長 = 38ms,平均 = 37ms

    environ --- 使用os.environ獲取系統環境變數。

      例如:

>>> os.environ
environ({'COMPUTERNAME': 'DESKTOP-KTUG9G5', 'APPDATA': 'C:\\Users\\BLUE\\AppData\\Roaming', 'USERDOMAIN_ROAMINGPROFILE': 'DESKTOP-KTUG9G5', 'HOMEPATH': '\\Users\\BLUE', 'NUMBER_OF_PROCESSORS': '8', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'ONEDRIVE': 'C:\\Users\\BLUE\\OneDrive', 'LOGONSERVER': '\\\\DESKTOP-KTUG9G5', 'OS': 'Windows_NT', 'TEMP': 'C:\\Users\\BLUE\\AppData\\Local\\Temp', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'PROGRAMDATA': 'C:\\ProgramData', 'PROMPT': '$P$G', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 60 Stepping 3, GenuineIntel', 'LOCALAPPDATA': 'C:\\Users\\BLUE\\AppData\\Local', 'USERNAME': 'BLUE', 'PROCESSOR_REVISION': '3c03', 'PROGRAMFILES': 'C:\\Program Files', 'PROGRAMW6432': 'C:\\Program Files', 'WINDIR': 'C:\\Windows', 'PUBLIC': 'C:\\Users\\Public', 'ASL.LOG': 'Destination=file', 'PSMODULEPATH': 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules', 'PROCESSOR_LEVEL': '6', 'SYSTEMROOT': 'C:\\Windows', 'SESSIONNAME': 'Console', 'ALLUSERSPROFILE': 'C:\\ProgramData', 'SYSTEMDRIVE': 'C:', 'COMSPEC': 'C:\\Windows\\system32\\cmd.exe', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'HOMEDRIVE': 'C:', 'TMP': 'C:\\Users\\BLUE\\AppData\\Local\\Temp', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'PATH': 'D:\\Program Files\\Anaconda3\\Library\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;D:\\Program Files\\Anaconda3;D:\\Program Files\\Anaconda3\\Scripts;D:\\Program Files\\Anaconda3\\Library\\bin;C:\\Users\\BLUE\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\BLUE\\AppData\\Local\\GitHubDesktop\\bin', 'USERDOMAIN': 'DESKTOP-KTUG9G5', 'USERPROFILE': 'C:\\Users\\BLUE'})

    path.abspath() --- 獲取文件的絕對路徑

      調用:os.path.abspath(filename)

      例如:

>>> os.chdir(r'C:\windows')
>>> os.path.abspath('regedit.exe')
'C:\\windows\\regedit.exe'

    path.split() --- 傳入一個文件路徑,返回一個tuple(由兩部分構成(path, filename))。

      調用:os.path.split(path)

      例如:

    path.dirname() --- 獲取路徑中的目錄。

      調用:os.path.dirname(path)

    path.basename() --- 獲取路徑中的文件名。

      調用:os.path.basename(path)

>>> os.path.dirname(r'C:\Windows\System32\drivers\etc\hosts')
'C:\\Windows\\System32\\drivers\\etc'
>>> os.path.basename(r'C:\Windows\System32\drivers\etc\hosts')
'hosts'
>>> os.path.split(r'C:\Windows\System32\drivers\etc\hosts')
('C:\\Windows\\System32\\drivers\\etc', 'hosts')

    path.exists() --- 判斷路徑是否存在。

      調用:os.path.exists(path)

    path.isabs() --- 判斷路徑是否是絕對路徑。

      調用:os.path.isabs(path)

    path.isfile() --- 判斷是否是文件。

      調用:os.path.isfile(path)

    path.isdir() --- 判斷是否是目錄。

      調用:os.path.isdir(path)

      例如:

>>> os.path.exists(r'C:\Windows\System32\drivers\etc\hosts')
True
>>> os.path.exists(r'C:\Windows\System32\drivers\etc\abcd')
False
>>> os.path.isabs(r'C:\Windows\System32\drivers\etc\hosts')
True
>>> os.path.isabs(r'../')
False
>>> os.path.isfile('C:\Windows\System32\drivers\etc\hosts')
True
>>> os.path.isfile('C:\Windows\System32\drivers\etc')
False
>>> os.path.isdir('C:\Windows\System32\drivers\etc')
True
>>> os.path.isdir('C:\Windows\System32\drivers\etc\hosts')
False

    path.join() --- 將一個或多個路徑正確地連接起來。

      調用:os.path.join(path, *paths)

    path.getatime() --- 獲取文件最後的訪問時間(以時間戳的形式返回)。

      調用:os.path.getatime(path)

    path.getmtime() --- 獲取文件最後的修改時間(以時間戳的形式返回)。

      調用:os.path.getmtime(path)

      例如:

>>> os.path.join('C:', r'\windows\System32', r'\System32\drivers')
'C:\\System32\\drivers'
>>> os.path.join('C:', r'\windows\System32')
'C:\\windows\\System32'
>>> os.path.getatime('C:\Windows\System32\drivers\etc\hosts')
1501070798.585747
>>> os.path.getmtime('C:\Windows\System32\drivers\etc\hosts')
1502505489.0068946

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 簡介 RabbitMQ是流行的開源消息隊列系統,用erlang語言開發。RabbitMQ是AMQP(高級消息隊列協議)的標準實現。 安裝 首先安裝erlang環境。 官網:http://www.erlang.org/ Windows版下載地址:http://erlang.org/download/o... ...
  • 0x00: 首先聲明一個全局變數。 然後,在滑動處罰ajax請求的代碼處,做一個判斷。 if (control) { $('.get_more').click(); }; 這個地方是獲取數據的函數以及ajax請求的函數 0x01以上原理: 首先聲明一個全局變數設置為true,在觸發滑動時間的時候,判 ...
  • 使用過HttpServlet的都應該用過其doGet和doPost方法,接下來看看DispatcherServlet對這兩個方法的實現(源碼在DispatcherServlet的父類FrameworkServlet中): 方法里又將邏輯交由processRequest(request, respon ...
  • 題目描述 Copy從盧牛那裡聽說在一片叫yz的神的領域埋藏著不少寶藏,於是Copy來到了這個被劃分為個區域的神地。盧牛告訴了Copy這裡共有個寶藏,分別放在第Pi個(1<=Pi<=N)區域。Copy還得知了每個區域之間的距離。現在Copy從1號區域出發,要獲得所有的寶藏併到n號區域離開。Copy很懶 ...
  • 想挖個坑督促自己練技術,有時候想到一個項目,大概想了一些要實現的功能,怎麼實現。現在覺得自己差不多能完成QQ空間的主要功能了。準備立個牌坊,寫一個類似功能的網站。並且把進度放到這裡來。 初步計劃實現以下功能 1、用戶註冊、登錄、信息修改; 2、用戶進行好友關註、推送好用動態; 3、發表日誌、評論和評 ...
  • 目錄 題目描述 思路 程式(C++版&java版) 詳解 題目描述: 思路: 這道題實在是太經典,一道題裡面考察了幾個知識點: 1.鏈表是否有環的判斷 2.鏈表若有環,要找到環的入口節點 3.兩個鏈表的多種情況分析 另外,左老師講得實在是太贊了. 程式(詳解在後面): 詳解 先把幾種情況羅列一下: ...
  • 附圖一張: 今天閑來無事做,就想起同程SRC有一個公開漏洞模塊。然而閑的蛋疼的我就有了對其寫一個爬蟲將漏洞列表爬下來的衝動。有兩個版本,一個是單線程的。另一個是多線程的版本。 單線程版本: 多線程版本: 多線程使用的是Threading+Queue #coding=utf-8 import requ ...
  • 二、初識C語言 編程語言有很多種,主要分為三大類,分別是機器語言、彙編語言、高級語言。電腦只能識別和理解二進位代碼,也就是0和1。想一下,用機器語言來開發,我們得記住多少用0和1兩個數字所組成的指令代碼以及其代碼涵義?顯然,這是不合理的,這樣的編程枯燥且繁瑣費力,也容易出錯。彙編語言應運而生,彙編 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...