1. 程式人生 > >Python不歸路_os和system模塊

Python不歸路_os和system模塊

定向 color unet pytho lines rmdir getc out odi

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或False
os.path.isabs()#判斷路徑是否絕對路徑,返回True或False
os.path.isflie()#判讀是否是文件,返回True或False
os.path.isdir()#判斷是否是目錄,返回True或False
os.path.join()#將多個文件組合返回
os.path.getatime()#獲取路徑最後存取時間
os.path.getmtime()#獲取路徑最後修改時間

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

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

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

輸出結果:

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

2.os.curdir和os.pardir

os.curdir
os.pardir

輸出結果:

.
..

3.os.makedirs()

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

import os
os.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 os
print(os.path.exists(
d:\\234)) print(os.path.exists((d:\\234\\234))#判斷d:\\234\\234目錄是否存在 os.removedirs(d:\\234\\234)#刪除d:\\234下所有,包括子目錄\\234 print(os.path.exists(d:\\234))#判斷是否已經刪除子目錄\\234

輸出結果:

True
True
False

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

5.os.mkdir和os.rmdir

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

import os
print(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))

輸出結果:

False
True
False

6.os.listdir

import os
print(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‘))
輸出結果: 
True
True  #os.rename()把python.txt重名為python123.txt
False #python.txt已被重名為python123.txt
False #python已被os.remove()刪除

8.os.stat()

import os
print(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模塊