Python不歸路_os和system模組

來源:互聯網
上載者:User

標籤:控制   format   color   ram   div   lis   布爾   join   編碼方式   

OS模組簡單的來說它是一個Python的系統編程的操作模組,可以處理檔案和目錄這些我們日常手動需要做的操作,OS模組提供對作業系統進行調用的介面。

幾個重要函數:

os.getcwd()#查看當前所在路徑,預設是Python程式所在路徑os.chdir()#切換目錄,功能和linux中cd命令一樣os.curdir#返回目前的目錄‘.’os.pardir#返回當前父目錄‘..’os.makedirs()#建立多級目錄,功能和linux中的mkdir -p命令一樣os.removedirs()#刪除多級目錄,若目錄非空,無法刪除,以此類推os.mkdir()#建立單級目錄os.rmdir()#刪除單級目錄os.listdir()#列出制定目錄下所有的目錄和檔案,以列表形式放回os.remove()#刪除檔案os.rename()#重新命名檔案os.stat()#擷取目錄和檔案資訊os.sep#輸出當前作業系統分隔字元,windows為‘\\’,Linux為‘/’os.linesep#輸出當前作業系統行終止符,windows為‘\t\n’,Linux為‘\n’os.pathsep#輸出用於分割檔案路徑的字串os.name#輸出當前使用平台,windows為‘nt’,Linux為‘postix’os.system()#輸出Linux命令os.environ()#擷取系統內容變數os.path.abspath()#輸出絕對路徑os.path.split()#將path分割成目錄和檔案名稱的二元組返回os.path.dirname()#返回path的目錄os.path.basename()#返回path最後的檔案名稱os.path.exists()#判斷路徑是否存在,返回Ture或Falseos.path.isabs()#判斷路徑是否絕對路徑,返回True或Falseos.path.isflie()#判讀是否是檔案,返回True或Falseos.path.isdir()#判斷是否是目錄,返回True或Falseos.path.join()#將多個檔案組合返回os.path.getatime()#擷取路徑最後存取時間os.path.getmtime()#擷取路徑最後修改時間

我們來看下各個函數的例子:

1.os.getcwd()、os.chdir()

import osos.getcwd() #當前所在目錄os.chdir(r‘d:\\‘) #切換路徑 os.getcwd()

 輸出結果:

‘D:\\Program Files\\python3.6‘‘d:\\‘

2.os.curdir和os.pardir 

os.curdiros.pardir

 輸出結果:

‘.‘‘..‘

3.os.makedirs()

建立多級目錄,類似Linux中mkdir -p的作用。

import osos.path.exists(‘d:\\234‘) #檢查d:\\234目錄是否存在os.makedirs(‘d:\\234\\234‘) #建立多級目錄 d:\\234\\234
os.path.exists(‘d:\\234‘) #檢查d:\\234目錄是否存在os.path.exists(‘d:\\234\\234‘)#檢查d:\\234\\234目錄是否存在

輸出結果:

False #d:\\234目錄不存在True #d:\\234目錄存在True #d:\\234\\234目錄存在

使用os.makedirs()函數同時建立了d:\\234及d:\\234\234兩個目錄,且這兩個目錄是父子關係。

4.os.removedirs()

import osprint(os.path.exists(‘d:\\234‘))print(os.path.exists((‘d:\\234\\234‘))#判斷d:\\234\\234目錄是否存在os.removedirs(‘d:\\234\\234‘)#刪除d:\\234下所有,包括子目錄\\234print(os.path.exists(‘d:\\234‘))#判斷是否已經刪除子目錄\\234

輸出結果:

TrueTrueFalse

從os.path.exists(‘d:\\234’)的輸出結果來看,表明os.removedirs()已經將d:\\234和子目錄\\234都刪除了。

5.os.mkdir和os.rmdir

os.mkdir和os.rmdir用法和Linux中mkdir、rmdir一樣,建立、刪除目錄。

import osprint(os.path.exists(‘d:\\234‘))os.mkdir(‘d:\\234‘)print(os.path.exists(‘d:\\234‘))os.rmdir(‘d:\\234‘)print(os.path.exists(‘d:\\234‘))

輸出結果:

FalseTrueFalse

6.os.listdir

import osprint(os.listdir(‘d:\\’))

輸出結果:

[‘$RECYCLE.BIN‘, ‘360安全瀏覽器下載‘, ‘BaiduNetdiskDownload‘, ‘dameware7.5.5‘, ‘MSOCache‘, ‘Office_2013_X64‘, ‘Program Files‘, ‘Program Files (x86)‘, ‘python‘, ‘System Volume Information‘, ‘Users‘]

os.listdir()函數以列表的形式返回結果,輸出該路勁下所有的目錄。

7.os.remove和os.rename

os.remove()刪除檔案,os.rename(oldname,newname)重新命名檔案

import os
print(os.path.exists(‘d:\\python.txt‘))
os.rename(‘d:\\python.txt‘,‘d:\\python123.txt‘)
print(os.path.exists(‘d:\\python123.txt‘))
print(os.path.exists(‘d:\\python.txt‘))
os.remove(‘d:\\python123.txt‘)
print(os.path.exists(‘d:\\python123.txt‘))
輸出結果: 
TrueTrue  #os.rename()把python.txt重名為python123.txtFalse #python.txt已被重名為python123.txtFalse #python已被os.remove()刪除

 8.os.stat()

import osprint(os.stat(‘d:\\‘))

輸出結果:

os.stat_result(st_mode=16895, st_ino=1407374883553285, st_dev=731043, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=1505912747, st_mtime=1505912747, st_ctime=1505665043)

9.os.system()

os.system()輸出Linux 命令。

10.os.path.abspath()

 os.path.abspath()輸出絕對路徑

import os
print(os.getcwd())
print(os.path.abspath(‘234.txt‘))
os.chdir(‘d:\\‘)
print(os.path.abspath(‘234.txt‘))

輸出結果:

E:\Len_Pyt #當前路徑E:\Len_Pyt\234.txt #輸出絕對路徑d:\234.txt #修改d:\\後,輸出絕對路徑

11.os.path.split(),os.path.dirname(),os.path.basename()

os.path.split() 將path分割成目錄和檔案名稱的二元組返回

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

os.path.basename() 返回path最後的檔案名稱

12.os.path.exists(),os.path.isfile(),os.path.isdir(),os.path.isabs()

依次判斷路徑是否存在,是否是檔案,是否是目錄,是否絕對路勁,返回布爾值。

13.os.path.getatime()#擷取路徑最後存取時間

  os.path.getmtime()#擷取路徑最後修改時間

sys模組:

sys.argv #擷取指令碼名後的參數sys.exit(n) #調用sys.exit(n)可以中途退出程式,當參數非0時,會引發一個SystemExit異常,從而可以在主程式中捕獲該異常。sys.path() #擷取所有python路徑sys.path.insert() #插入python模組sys.platfrom() #擷取當前平台
  • sys.argv: 實現從程式外部向程式傳遞參數。

  • sys.exit([arg]): 程式中間的退出,arg=0為正常退出。

  • sys.getdefaultencoding(): 擷取系統當前編碼,一般預設為ascii。

  • sys.setdefaultencoding(): 設定系統預設編碼,執行dir(sys)時不會看到這個方法,在解譯器中執行不通過,可以先執行reload(sys),在執行 setdefaultencoding(‘utf8‘),此時將系統預設編碼設定為utf8。(見設定系統預設編碼 )

  • sys.getfilesystemencoding(): 擷取檔案系統使用編碼方式,Windows下返回‘mbcs‘,mac下返回‘utf-8‘.

  • sys.path: 擷取指定模組搜尋路徑的字串集合,可以將寫好的模組放在得到的某個路徑下,就可以在程式中import時正確找到。

  • sys.platform: 擷取當前系統平台。

  • sys.stdin,sys.stdout,sys.stderr: stdin , stdout , 以及stderr 變數包含與標準I/O 流對應的流對象. 如果需要更好地控制輸出,而print 不能滿足你的要求, 它們就是你所需要的. 你也可以替換它們, 這時候你就可以重新導向輸出和輸入到其它裝置( device ), 或者以非標準的方式處理它們

 

 

 

 

  

Python不歸路_os和system模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.