Python Module_os_操作系統

      網友投稿 838 2025-03-31

      目錄


      目錄

      前言

      軟件環境

      os模塊內建屬性

      osname 獲取執行平臺的類型

      oslinesep 輸出當前平臺使用的行終止符

      ossep 輸出操作系統特定的路徑分隔符

      ospathsep 輸出用于分割文件路徑的字符串

      Other

      os模塊內建方法

      文件或目錄的路徑操作方法

      osgetcwd 獲取當前工作目錄

      ospathexists 判斷一個路徑是否存在

      ospathisfile 判斷指定對象是否為文件

      ospathisdir 判斷指定對象是否為目錄

      ospathsplit 分裂上層目錄和下層目錄文件

      ospathdirnamepath 返回path的目錄

      ospathbasenamepath 返回path最后的文件目錄名

      ospathjoin 合并目錄名和文件名目錄名

      ospathsplitext 分離文件名和擴展名

      ospathabspath 獲得絕對路徑

      文件或目錄信息的查詢創建刪除修改

      ospathgetsize 獲得文件或目錄的大小

      osstat 獲取文件目錄信息

      oslistdir 獲取指定目錄下的文件和目錄名列表

      oswalk 生成一個目錄樹下的所有文件名

      ospathwalktopfuncarg 生成一個目錄樹下的所有文件名

      osmkdir 創建一個目錄

      osmakedirsdirname1dirname2 遞歸創建多層目錄

      osrmdir 刪除指定的目錄

      osremovedirsdirname1 遞歸刪除目錄

      osremove 刪除一個文件

      osrename 重命名一個文件或目錄

      oschdir 改變當前腳本工作目錄

      執行系統指令的方法

      ossystem 執行Shell指令

      ospopen 運行shell命令并生成類文件對象

      修改時間屬性的方法

      osutime 修改時間屬性

      修改文件或目錄權限的方法

      osaccess 查詢文件權限模式

      oschmod 改變文件權限模式

      Other

      前言

      Python標準庫中的OS模塊,提供一種可移植的方式(程序與平臺無關)來使用依賴于操作系統的功能。簡而言之,os模塊提供了許多能夠直接操縱不同的操作系統的Python接口。一個操作系統所能提供的常用命令行接口,在os模塊中基本都能做到。本篇主要是對os模塊中常用屬性和方法的記錄。想了解更詳細的使用推薦使用Python中文文檔,點這里。

      軟件環境

      系統

      RHEL 7

      軟件

      Pyhon 27

      os模塊內建屬性

      os.name 獲取執行平臺的類型

      操作系統相關模塊的名字。目前已經注冊以下的名字:’posix’、’nt’、’os2’、’ce’、’java’、’riscos’。

      如果執行平臺是window,則os.name == "nt",如果是Linux/Unix,則os.name == 'posix'。

      >>> os.name 'posix'

      1

      2

      POSIX :表示可移植操作系統接口(Portable Operating System Interface ,縮寫為 POSIX ),POSIX標準定義了操作系統應該為應用程序提供的接口標準,是IEEE為要在各種UNIX操作系統上運行的軟件而定義的一系列API標準的總稱,其正式稱呼為IEEE 1003,而國際標準名稱為ISO/IEC 9945。

      os.linesep 輸出當前平臺使用的行終止符

      也稱之為換行符,windows下為”\t\n”,Linux下為”\n

      >>> os.linesep '\n'

      1

      2

      os.sep 輸出操作系統特定的路徑分隔符

      目錄層之間的分隔符

      >>> os.sep '/'

      1

      2

      os.pathsep 輸出用于分割文件路徑的字符串

      >>> os.pathsep ':' root@localhost workspace]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/workspace:/root/bin #在Linux中路徑以':'來分隔

      1

      2

      3

      4

      Other

      os.curdir 返回當前目錄: (‘.’)

      os.pardir 獲取當前目錄的父目錄字符串名:(‘..’)

      os.R_OK/os.W_OK/os.X_OK 文件權限模式。他們的值分別是:4/2/1

      os.environ 獲取系統環境變量

      os模塊內建方法

      文件或目錄的路徑操作方法

      os.getcwd() 獲取當前工作目錄

      獲取當前工作目錄的絕對路徑。

      >>> os.getcwd() '/opt/workspace'`

      1

      2

      os.path.exists() 判斷一個路徑是否存在

      如果path存在,返回True;如果path不存在,返回False。常用于在對一個文件做操作之前的判斷依據。

      >>> os.path.exists("/opt/workspace/tab.py") True

      1

      2

      os.path.isfile() 判斷指定對象是否為文件

      是返回True,否則False

      >>> os.path.isfile("tab.py") True >>> os.path.isfile("testMkdir") False

      1

      2

      3

      4

      os.path.isdir() 判斷指定對象是否為目錄

      是True,否則False。

      >>> os.path.isdir("testMkdir") True >>> os.path.isdir("tab.py") False

      1

      2

      3

      4

      os.path.split() 分裂上層目錄和下層目錄|文件

      生成一個包含兩個元素的元組。

      >>> os.path.split("/opt/workspace/tab.py") ('/opt/workspace', 'tab.py') #tab.py為文件 >>> os.path.split("/opt/workspace/testMkdir") #testMkdir為目錄 ('/opt/workspace', 'testMkdir')

      1

      2

      3

      4

      os.path.dirname(path) 返回path的目錄

      就是os.path.split(path)的第一個元素

      >>> os.path.dirname("/opt/workspace/tab.py") # 本質 == os.path.split("/opt/workspace/tab.py")[0] '/opt/workspace'

      1

      2

      os.path.basename(path) 返回path最后的文件|目錄名

      即os.path.split(path)的第二個元素。

      注意:如何路徑以’/’或’\’結尾,就會返回空值。

      >>> os.path.basename("/opt/workspace/tab.py") #本質 == os.path.split("/opt/workspace/tab.py")[1] 'tab.py' >>> os.path.basename("/opt/workspace/testMkdir") 'testMkdir' >>> os.path.basename("/opt/workspace/") ''

      1

      2

      3

      4

      5

      6

      os.path.join() 合并目錄名和文件名|目錄名

      >>> os.path.basename("/opt/workspace/tab.py") 'tab.py' >>> os.path.dirname("/opt/workspace/tab.py") '/opt/workspace' >>> os.path.join(os.path.dirname("/opt/workspae/tab.py"),os.path.basename("/opt/workspace/tab.py")) '/opt/workspae/tab.py'

      1

      2

      3

      4

      5

      6

      os.path.splitext() 分離文件名和擴展名

      >>> os.path.splitext("tab.py") ('tab', '.py')

      1

      2

      os.path.abspath() 獲得絕對路徑

      返回一個文件或目錄的絕對路徑,可以很方便的得到一個文件或目錄的絕對路徑。

      >>> os.path.abspath("tab.py") '/opt/workspace/tab.py'

      1

      2

      文件或目錄信息的查詢、創建、刪除、修改

      os.path.getsize() 獲得文件或目錄的大小

      >>> os.path.getsize("tab.py") 417 >>> os.path.getsize("testMkdir") 6

      1

      2

      3

      4

      os.stat() 獲取文件/目錄信息

      >>> os.stat("/opt") posix.stat_result(st_mode=16877, st_ino=164, st_dev=64768L, st_nlink=4, st_uid=0, st_gid=0, st_size=31, st_atime=1460805310, st_mtime=1460805067, st_ctime=1460805067) >>> os.stat("/opt/workspace/tab.py") posix.stat_result(st_mode=33152, st_ino=203490123, st_dev=64768L, st_nlink=1, st_uid=0, st_gid=0, st_size=417, st_atime=1460805594, st_mtime=1460805500, st_ctime=1460805500)

      1

      2

      3

      4

      os.listdir() 獲取指定目錄下的文件和目錄名列表

      listdir(…)

      listdir(path) -> list_of_strings

      Return a list containing the names of the entries in the directory.

      path: path of directory to list

      The list is in arbitrary order.

      NOTE:It does not include the special

      entries ‘.’ and ‘..’ even if they are present in the directory.

      注意:路徑并不能含有’.’ or ‘..’ 。

      >>> dirName = "/opt/workspace" >>> os.listdir(dirName) ['ifTest.py', 'forTest.py', 'forTest1.py', 'whileTest.py', 'continueTest.py', 'pyModule.py', 'randomTest.py', 'funcTest1.py', '.servStatus.py.swp', 'forTest2.py', 'ifTest1.py', 'pyModule.pyc', 'tab.py', 'tab.pyc', 'choiceTest.py', 'funTest2.py', 'funcTest3.py']

      1

      2

      3

      os.walk() 生成一個目錄樹下的所有文件名

      os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

      1.top表示要遍歷的目錄樹的路徑

      2.topdown的默認值是”True”,表示首先返回目錄樹下的文件,然后在遍歷目錄樹的子目錄.Topdown的值為”False”時,則表示先遍歷目錄樹的子目錄,返回子目錄下的文件,最后返回根目錄下的文件

      3.onerror的默認值是”None”,表示忽略文件遍歷時產生的錯誤。如果不為空,則提供一個自定義函數提示錯誤信息后繼續遍歷或拋出異常中止遍歷

      for root, dirs, files in os.walk("/opt", topdown=False): for name in files: print(os.path.join(root, name)) #打印文件絕對路徑 for name in dirs: print(os.path.join(root, name)) #打印目錄絕對路徑

      1

      2

      3

      4

      5

      os.path.walk(top,func,arg) 生成一個目錄樹下的所有文件名

      1.top表示需要遍歷的目錄樹的路徑

      2.func表示回調函數,對遍歷路徑進行處理.所謂回調函數,是作為某個函數的參數使用,當某個時間觸發時,程序將調用定義好的回調函數處理某個任務.回調函數必須提供3個參數:第1個參數為walk()的參數tag,第2個參數表示目錄列表,第3個參數表示文件列表

      3.arg是傳遞給回調參數func的元組.回調函數的一個參數必須是arg,為回調函數提供處理參數.參數arg可以為空

      def visitDir(arg,dirname,names): for filespath in names: print os.path.join(dirname,filespath) path="/opt" os.path.walk(path,VisitDir,())

      1

      2

      3

      4

      5

      注意:os.path.walk()與os.walk()產生的文件名列表并不相同。os.path.walk()產生目錄樹下的目錄路徑和文件路徑,而os.walk()只產生文件路徑

      os.mkdir() 創建一個目錄

      >>> os.mkdir("testMkdir") >>> os.listdir(os.getcwd()) ['tab.py', 'ipython-4.1.2.tar.gz', 'ipython-4.1.2', 'traitlets-4.1.0', 'ipython_genutils-0.1.0', 'pexpect-4.0.1', 'ptyprocess-0.5', 'pickleshare-0.5', 'path.py-8.1.1', 'testMkdir']

      1

      2

      3

      os.makedirs(‘dirname1/dirname2’) 遞歸創建多層目錄

      >>> os.makedirs("/opt/workspace/dirname1/dirname2") >>> os.listdir("/opt/workspace") ['tab.py', 'ipython-4.1.2.tar.gz', 'ipython-4.1.2', 'traitlets-4.1.0', 'ipython_genutils-0.1.0', 'pexpect-4.0.1', 'ptyprocess-0.5', 'pickleshare-0.5', 'path.py-8.1.1', 'testMkdir', 'dirname1']

      Python Module_os_操作系統

      1

      2

      3

      os.rmdir() 刪除指定的目錄

      >>> os.rmdir("testDir")

      1

      os.removedirs(‘dirname1’) 遞歸刪除目錄

      若dirname2為空,則刪除,并遞歸到上一級dirname1目錄,如若也為空,則也刪除,依此類推。

      >>> os.removedirs("/opt/workspace/dirname1/dirname2")

      1

      os.remove() 刪除一個文件

      注意:只能夠刪除文件,而不能刪除一個目錄。

      >>> os.remove('ifTest.py')

      1

      os.rename() 重命名一個文件或目錄

      >>> os.rename("test","JustTest") #test為一個文件 >>> os.rename("ipython-4.1.2","sdasd") #ipython-4.1.2為一個目錄

      1

      2

      os.chdir() 改變當前腳本工作目錄

      >>> os.getcwd() '/opt/workspace' >>> os.chdir("/") >>> os.getcwd() '/'

      1

      2

      3

      4

      5

      執行系統指令的方法

      os.system() 執行Shell指令

      可以執行不同平臺下的Shell指令,顯示執行結果并返回執行狀態。若為Windows,則為CMD;若是Linux,則為Bash。

      注意:返回的是執行狀態,執行結果只會顯示在終端上。

      os.system(…)

      os.system(command) -> exit_status

      Execute the command (a string) in a subshell.

      >>> result = os.system("ls") ipython-4.1.2.tar.gz path.py-8.1.1 ptyprocess-0.5 testMkdir ipython_genutils-0.1.0 pexpect-4.0.1 sdasd traitlets-4.1.0 JustTest pickleshare-0.5 tab.py >>> result

      1

      2

      3

      4

      5

      os.popen() 運行shell命令并生成類文件對象

      生成的變量可以賦給變量,再用read()等類文件對象內置方法讀取和操作。

      >>> result = os.popen("ls") >>> result.read() 'ipython-4.1.2.tar.gz\nipython_genutils-0.1.0\nJustTest\npath.py-8.1.1\npexpect-4.0.1\npickleshare-0.5\nptyprocess-0.5\nsdasd\ntab.py\ntestMkdir\ntraitlets-4.1.0\n'

      1

      2

      3

      修改時間屬性的方法

      os.utime() 修改時間屬性

      >>> stinfo = os.stat("/opt/workspace/tab.py") >>> stinfo.st_atime 1460805594.4710202 >>> stinfo.st_mtime 1460805500.175018 >>>os.utime('/opt/workspace/tab.py',(1375448978,1369735977)) >>> stinfo = os.stat("/opt/workspace/tab.py") >>> stinfo.st_atime 1375448978.0 >>> stinfo.st_mtime 1369735977.0

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      修改文件或目錄權限的方法

      os.access() 查詢文件權限模式

      一般需要結合os.R_OK/os.W_OK/os.X_OK文件權限模式來處理。

      >>> os.access("tab.py",os.W_OK) True >>> os.access("tab.py",os.R_OK) True >>> os.access("tab.py",os.X_OK) False

      1

      2

      3

      4

      5

      6

      os.chmod() 改變文件權限模式

      >>> os.chmod("tab.py",os.X_OK) >>> os.access("tab.py",os.X_OK) True

      1

      2

      3

      Other

      os.path.commonprefix(list) 返回list中,所有path共有的最長的路徑,從左向右,相同字符

      os.path.abspath(path) 返回path規范化的絕對路徑

      os.path.isabs(path) 如果path是絕對路徑,返回True

      os.path.normcase(path) 在Linux下,該函數會原樣返回path,在windows平臺上會將路徑中所有字符轉換為小寫,并將所有斜杠轉換為反斜杠

      Python Windows

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何用word批量制作工資條(批量制作工資條的主要步驟)
      下一篇:學會復盤,人生才能翻盤
      相關文章
      亚洲人片在线观看天堂无码| 亚洲天堂一区二区三区四区| 亚洲电影在线播放| 亚洲精品制服丝袜四区| 久久影视综合亚洲| 亚洲日韩在线中文字幕第一页| 无码天堂va亚洲va在线va| 亚洲国产精品自在自线观看| 亚洲人成77777在线观看网| 色偷偷亚洲女人天堂观看欧| 亚洲专区中文字幕| 亚洲天堂2016| 伊人久久亚洲综合影院首页| 亚洲熟妇AV一区二区三区宅男| 亚洲一区欧洲一区| 亚洲人成网站18禁止| 亚洲欧洲国产综合AV无码久久| 国产午夜亚洲精品| 亚洲另类自拍丝袜第五页| 亚洲日韩AV无码一区二区三区人| 亚洲色偷偷偷综合网| 亚洲国产成人无码AV在线| 久久久久亚洲国产AV麻豆| 精品亚洲视频在线| 亚洲第一永久AV网站久久精品男人的天堂AV | 亚洲一区二区三区丝袜| 亚洲色大网站WWW永久网站| 亚洲精品无码久久久久秋霞| 久久亚洲精品无码gv| www国产亚洲精品久久久| 亚洲一级片免费看| 亚洲免费人成在线视频观看| 亚洲AV无码一区二区二三区软件 | 日韩一卡2卡3卡4卡新区亚洲| 亚洲色无码一区二区三区| 亚洲成Av人片乱码色午夜| 亚洲人成网站在线播放影院在线 | 国产成人 亚洲欧洲| 国产精品亚洲视频| 亚洲国产精品成人久久| 水蜜桃亚洲一二三四在线|