Python不歸路_os和system模塊
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(r‘d:\\‘) #切換路徑 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模塊