操做文件和目錄

 

當操做文件、目錄時,可在命令行下面輸入操做系統提供的各類命令來完成,如dir、cp等
其實操做系統提供的命令只是簡單地調用了操做系統提供的接口函數,Python內置的os模塊也能夠直接調用操做系統提供的接口函數linux

 

實例函數

import os

#操做系統
print(os.name)  #操做系統類型
                #output --> 'posix'
                #若是是posix,說明系統是Linux、Unix或Mac OS X,若是是nt,就是Windows系統
print(os.uname()) #要獲取詳細的系統信息, uname()函數在Windows上不提供,由於os模塊的某些函數是跟操做系統相關的


#環境變量
print(os.environ) #在操做系統中定義的環境變量,所有保存在os.environ這個變量中,能夠直接查看
print(os.environ.get('PATH')) #獲取某個環境變量的值

    
#目錄
print(os.path.abspath('.')) #查看當前目錄的絕對路徑
os.path.join('/Users/michael', 'testdir') #在某個目錄下建立一個新目錄,首先把新目錄的完整路徑表示出來
                           #把兩個路徑合成一個時,不要直接拼字符串,而要經過os.path.join()函數,這樣能夠正確處理不一樣操做系統的路徑分隔符
                           #如window是\...\...\..., 而linux是/.../.../.../...
print(os.path.split('/Users/michael/testdir/file.txt')) #一樣的道理,要拆分路徑時,也不要直接去拆字符串,而要經過os.path.split()函數
                                                        #這樣能夠把一個路徑拆分爲兩部分,後一部分老是最後級別的目錄或文件名
                                                        #('/Users/michael/testdir', 'file.txt')
print(os.path.splitext('/path/to/file.txt')) #直接讓你獲得文件擴展名
                                             #output --> ('/path/to/file', '.txt')
os.mkdir('/Users/michael/testdir') #建立一個目錄
os.rmdir('/Users/michael/testdir') #刪掉一個目錄
'''
注意:1 操做文件和目錄的函數一部分放在os模塊中,一部分放在os.path模塊中
     2 關於路徑合併、拆分的函數並不要求目錄和文件要真實存在,它們只對字符串進行操做
'''


#文件
os.rename('test.txt', 'test.py') #對文件重命名
os.remove('test.py') #刪掉文件
print([x for x in os.listdir('.') if os.path.isdir(x)]) # 列出當前目錄下的全部目錄,其利用Python的特性來過濾文件
print([x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py']) # 要列出全部的.py文件
'''
注意:複製文件的函數在os模塊中不存在,由於複製文件不是由操做系統提供的系統調用
     可以使用shutil模塊提供的copyfile()函數實現文件複製,shutil模塊還有不少其餘實用函數,可看作是os模塊的補充
'''

 ——————————————————————————————————————————————————————————————————————spa

相關文章
相關標籤/搜索