Python學習日記(十七) os模塊和sys模塊

来源:https://www.cnblogs.com/Fantac/archive/2019/08/31/11441096.html
-Advertisement-
Play Games

os模塊 1.os.getcwd() 獲取當前工作目錄,即當前python腳本工作的目錄路徑 2.os.chdir() 改變當前腳本工作目錄;相當於shell下cd 3.os.makedirs() 用於遞歸創建目錄,內部有兩個參數path、mode(許可權模式) 代碼執行前: 代碼執行後: 4.os. ...


os模塊

1.os.getcwd()

獲取當前工作目錄,即當前python腳本工作的目錄路徑

import os
print(os.getcwd())       #C:\Users\Administrator\PycharmProjects\PYL\temp_file

2.os.chdir()

改變當前腳本工作目錄;相當於shell下cd

import os
print(os.getcwd())       #C:\Users\Administrator\PycharmProjects\PYL\temp_file
os.chdir(r'C:\Users\Administrator\PycharmProjects\PYL')
print(os.getcwd())       #C:\Users\Administrator\PycharmProjects\PYL

3.os.makedirs()

用於遞歸創建目錄,內部有兩個參數path、mode(許可權模式)

import os
os.makedirs('dirname1/dirname2/dirname3')

代碼執行前:

代碼執行後:

4.os.removedirs()

用於遞歸刪除目錄,若目錄為空則刪除,並返回上一層目錄,若也為空,也刪除,以此類推;如果目錄不為空就沒有辦法刪除,程式會報錯

import os
os.removedirs('dirname1/dirname2/dirname3')

代碼執行前:

代碼執行後:

5.os.mkdir()

和makedirs()相比只能一級一級的創建目錄,預設的許可權數字模式是0777(八進位)

import os
os.mkdir('dirname1/dirname2')

代碼執行前:

代碼執行後:

 

6.os.listdir()

返回指定的文件夾包含的文件或文件夾的名字的列表.這個列表以字母順序,它不包括'.'和'..'即使它在文件夾中,只支持在Unix,Windows下使用

import os
path = os.getcwd()
print(path)                                                                         #C:\Users\Administrator\PycharmProjects\PYL\temp_file
print(os.listdir(path))                                                             #['dirname1', 'temp_py.py']
print(os.listdir(r'C:\Users\Administrator\PycharmProjects\PYL\temp_file'))         #['dirname1', 'temp_py.py']

7.os.stat()

用於在給定的路徑上執行一個系統 stat 的調用

參數:

st_mode: inode 保護模式
st_ino: inode 節點號。
st_dev: inode 駐留的設備。
st_nlink: inode 的鏈接數。
st_uid: 所有者的用戶ID。
st_gid: 所有者的組ID。
st_size: 普通文件以位元組為單位的大小;包含等待某些特殊文件的數據。
st_atime: 上次訪問的時間。
st_mtime: 最後一次修改的時間。
st_ctime: 由操作系統報告的"ctime"。在某些系統上(如Unix)是最新的元數據更改的時間,在其它系統上(如Windows)是創建時間(詳細信息參見平臺的文檔)。
import os
path = os.getcwd()
print(path)             #C:\Users\Administrator\PycharmProjects\PYL\temp_file
get_path = os.stat(path)
print(get_path)         #os.stat_result(st_mode=16895, st_ino=51791395714972605, st_dev=2243978906, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=1567246056, st_mtime=1567246056, st_ctime=1567058187)
get_path2 = os.stat('test.py')
print(get_path2)        #os.stat_result(st_mode=33206, st_ino=38280596832774340, st_dev=2243978906, st_nlink=1, st_uid=0, st_gid=0, st_size=12, st_atime=1567245950, st_mtime=1567245950, st_ctime=1567245924)

8.os.system()

運行shell命令,直接顯示

import os
print(os.system('dir'))
#  ������ C �еľ��� ϵͳ
#  �������� 85C0-669A
# 
#  C:\Users\Administrator\PycharmProjects\PYL\temp_file ��Ŀ¼
# 
# 2019/08/31  22:00    <DIR>          .
# 2019/08/31  22:00    <DIR>          ..
# 2019/08/31  17:40    <DIR>          dirname1
# 2019/08/31  22:00                34 temp_py.py
# 2019/08/31  18:05                12 test.py
#                2 ���ļ�             46 �ֽ�
#                3 ��Ŀ¼ 45,381,369,856 �����ֽ�
# 0

9.os.popen()

運行shell命令,獲取執行結果

import os
print(os.popen('dir').read())
#  驅動器 C 中的捲是 系統
#  捲的序列號是 85C0-669A
# 
#  C:\Users\Administrator\PycharmProjects\PYL\temp_file 的目錄
# 
# 2019/08/31  22:08    <DIR>          .
# 2019/08/31  22:08    <DIR>          ..
# 2019/08/31  17:40    <DIR>          dirname1
# 2019/08/31  22:04    <DIR>          nwdir
# 2019/08/31  22:08                40 temp_py.py
# 2019/08/31  18:05                12 test.py
#                2 個文件             52 位元組
#                4 個目錄 45,363,744,768 可用位元組

10.os.rename()

重命名文件/目錄

import os
os.rename('old_test.py','new_test.py')

程式執行前:

程式執行後:

11.os.path.getsize()

返回這個路徑下的所有文件夾的內容大小

import os
path = os.getcwd()
path_size = os.path.getsize(path)
print(path_size)              #4096

12.os.path.abspath() 

返回path規範化的絕對路徑

import os
path = os.getcwd()
print(os.path.abspath(path))        #C:\Users\Administrator\PycharmProjects\PYL\temp_file

13.os.path.split()

將path分割成目錄和文件名二元組返回 

import os
path = os.getcwd()
print(os.path.split(path))        #('C:\\Users\\Administrator\\PycharmProjects\\PYL', 'temp_file')

14.os.path.dirname()

返回path的目錄,其實就是os.path.split(path)的第一個元素 

import os
path = os.getcwd()
print(path)                         #C:\Users\Administrator\PycharmProjects\PYL\temp_file
print(os.path.dirname(path))        #C:\Users\Administrator\PycharmProjects\PYL

15.os.path.basename()

返回path最後的文件名,如果path以/或\結尾,那麼就會返回空值,即os.path.split(path)的第二個元素

import os
path = os.getcwd()
print(path)                         #C:\Users\Administrator\PycharmProjects\PYL\temp_file
print(os.path.basename(path))       #temp_file

16.os.path.exists()

如果path存在,返回True;如果path不存在,返回False

import os
path = os.getcwd()
print(path)                                                                             #C:\Users\Administrator\PycharmProjects\PYL\temp_file
print(os.path.exists(path))                                                             #True
print(os.path.exists(r'C:\Users\Administrator\PycharmProjects\PYL\temp_file2'))         #False

17.os.path.isabs()

如果path是絕對路徑,返回True

import os
path = os.getcwd()
print(path)                                                                             #C:\Users\Administrator\PycharmProjects\PYL\temp_file
print(os.path.isabs(path))                                                              #True
print(os.path.isabs(r'.\temp_file'))                                                    #False

18.os.path.isfile()

如果path是一個存在的文件,返回True,否則返回False

import os
path = os.getcwd()
print(path)                                                                                                     #C:\Users\Administrator\PycharmProjects\PYL\temp_file
print(os.path.isfile(path))                                                                                     #False
print(os.path.isfile(r'C:\Users\Administrator\PycharmProjects\PYL\temp_file\dirname1\dirname2\temp_py.py'))     #True

19.os.path.isdir()

如果path是一個存在的目錄,則返回True,否則返回False

import os
path = os.getcwd()
print(path)                                                                                                     #C:\Users\Administrator\PycharmProjects\PYL\temp_file
print(os.path.isdir(path))                                                                                      #True
print(os.path.isdir(r'C:\Users\Administrator\PycharmProjects\PYL\temp_file\dirname1\dirname2\temp_py.py'))      #False

20.os.path.isjoin()

將多個路徑組合後返回,第一個絕對路徑之前的參數將被忽略

import os
path = os.getcwd()
print(path)                                                               
#C:\Users\Administrator\PycharmProjects\PYL\temp_file
print(os.path.join(path,r'C:\Users\Administrator\PycharmProjects\PYL\temp_file\new_test.py'))
# C:\Users\Administrator\PycharmProjects\PYL\temp_file
# C:\Users\Administrator\PycharmProjects\PYL\temp_file\new_test.py

21.os.path.getatime()

返回path所指向的文件或者目錄的最後訪問時間

import os,time
path = os.getcwd()
print(path)                                                         #C:\Users\Administrator\PycharmProjects\PYL\temp_file
times = os.path.getatime(path)
print(times)                                                        #1567261823.2424655
print('文件最後訪問時間:' + time.asctime(time.localtime(times)))      #文件最後訪問時間:Sat Aug 31 22:30:23 2019

22.os.path.getmtime()

返回path所指向的文件或者目錄的最後修改時間

import os,time
path = os.getcwd()
print(path)                                                         #C:\Users\Administrator\PycharmProjects\PYL\temp_file
times = os.path.getmtime(path)
print(times)                                                        #1567261823.2424655
print('文件最後修改時間:' + time.asctime(time.localtime(times)))      #文件最後訪問時間:Sat Aug 31 22:30:23 2019

23.os模塊的屬性

os.sep     輸出操作系統特定的路徑分隔符,win下為"\\",Linux下為"/"
os.linesep    輸出當前平臺使用的行終止符,win下為"\r\n",Linux下為"\n"
os.pathsep    輸出用於分割文件路徑的字元串 win下為;,Linux下為:
os.name    輸出字元串指示當前使用平臺。win->'nt'; Linux->'posix'

 

sys模塊

1.sys.platform

返回操作系統平臺名稱

import sys
print(sys.platform)     #win32

2.sys.argv

命令行參數List,第一個元素是程式本身路徑

import sys
print(sys.argv)      #['C:\\Users\\Administrator\\PycharmProjects\\PYL\\temp_file\\dirname1\\dirname2\\temp_py.py']

3.sys.exit(n)

退出程式,正常退出時exit(0),錯誤退出sys.exit(1)

4.sys.version

獲取python解釋程式的版本信息

import sys
print(sys.version)      #3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)]

5.sys.path

返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變數的值

import sys
print(sys.path)      #['C:\\Users\\Administrator\\PycharmProjects\\PYL\\temp_file\\dirname1\\dirname2', 
                     # 'C:\\Users\\Administrator\\PycharmProjects\\PYL', 
                     # 'C:\\Users\\Administrator\\PycharmProjects\\PYL\\venv\\Scripts\\python37.zip', 
                     # 'F:\\Anaconda\\DLLs', 
                     # 'F:\\Anaconda\\lib', 
                     # 'F:\\Anaconda', 
                     # 'C:\\Users\\Administrator\\PycharmProjects\\PYL\\venv', 
                     # 'C:\\Users\\Administrator\\PycharmProjects\\PYL\\venv\\lib\\site-packages', 
                     # 'C:\\Users\\Administrator\\PycharmProjects\\PYL\\venv\\lib\\site-packages\\setuptools-40.8.0-py3.7.egg', 
                     # 'C:\\Users\\Administrator\\PycharmProjects\\PYL\\venv\\lib\\site-packages\\pip-19.0.3-py3.7.egg']

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

-Advertisement-
Play Games
更多相關文章
  • 嘗試模仿京東的“發現好貨”模塊的可用滑塊滑動的緩動圖 <! more JS代碼 HTML代碼 CSS代碼 ...
  • HTML表單: HTML表單用於搜集不同類型的輸入 標簽元素: HTML表單用於收集用戶輸入; form元素定義HTML表單 屬性列表: | 屬性 | 描述 | | | | | accept charset | 規定在被提交表單中使用的字元集(預設:頁面字元集)。 | | action | 規定向何 ...
  • 目前學習golang的主要需求是為了看懂TiDB的源碼,下麵我們複習一下簡易工廠模式的思想 工廠類型分為三種,創建型模式,結構型模式,行為型模式。 簡單工廠 使用場景:考慮一個簡單的API設計,一個模塊可以提供不同的APi,這些Api都源自同一個基類,不過在繼承基類後不同的子類修改了部分屬性,從而可 ...
  • JVM巨集觀認知 1.什麼是虛擬機? 虛擬機是一種 軟體 。 可分為系統虛擬機(模擬物理機)和程式虛擬機(執行單個電腦程式,比如JVM)。 2.什麼是Java虛擬機(JVM)? JVM是一種將位元組碼轉化為機器碼的軟體。(同上) 歷經時間的迭代,目前廣泛應用的Java虛擬機是Oracle的HotSpo ...
  • 所有的框架處理業務請求時,都會處理URL的路徑部分,分配到指定的代碼中去處理。實現這一功能的關鍵就是獲取$_SERVER全局變數中對於URL部分的數據 當請求的路徑為http://test.com/article?id=1http://test.com/article/update?id=1 支持以 ...
  • ZAB協議包括兩種基本的模式,分別是 崩潰恢復和消息廣播。當整個服務框架在啟動過程中,或是當 Leader 伺服器出現網路中斷、崩潰退出與重啟等異常情況時,ZAB 協議就會進人恢復模式並選舉產生新的Leader伺服器。當選舉產生了新的 Leader 伺服器,同時集群中已經有過半的機器與該Leader... ...
  • 在類中定義__slot__屬性來限制實例的屬性欄位,在創建大量對象的場合可以減少記憶體占用。 創建大量對象是記憶體占用對比: 執行結果: Line # Mem usage Increment Line Contents 401 39.7 MiB 39.7 MiB @profile() 402 def m ...
  • 總想寫點什麼,沒想好,先占個坑位 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...