在查找大量文件或者獲取相關路徑等操做時主要依賴於OS模塊。python
一、查詢當前使用平臺git
>>>os.name 'posix' # 表明 Linux ‘nt’ # 表明windows
二、當前路徑和文件shell
os.getcwd() # 返回當前工做目錄 os.getcwdu() # 返回一個當前工做目錄的Unicode對象。 os.listdir(path) # 返回path目錄下的全部文件列表。 >>> os.listdir('/opt') ['.script', 'registry', 'haproxy.cfg', 'chess', 'test', 'gitlog', 'c.txt', 'a.py', 'file.py', 'mail.sh', 'a.txt', 'b.txt', 'a.txt.bak', '.a.txt.swap']
三、絕對路徑apache
os.path.abspath(path) #返回path的絕對路徑 >>> os.chdir('/usr/local/src') # 將當前的工做目錄更改成/usr/local/src >>> os.path.abspath(os.getcwd()) '/usr/local/src'
四、執行系統命令windows
os.system() # 運行shell命令 >>>os.system('cmd') # 在Windows下打開終端 >>>os.system('ls') #在Linux下查看當前目錄下的全部文件 apache-jmeter-4.0
五、查看文件名或者目錄ui
>>> os.path.split('/opt/mail.sh') # 將目錄和文件名分開爲元組 ('/opt', 'mail.sh') >>> os.path.join('/opt','gitlog','log','20180411.log') #將path1,path2...進行組合,若path2爲絕對路徑,則會將path1刪除。 '/opt/gitlog/log/20180411.log' >>> os.path.join('/opt','/gitlog','log','20180411.log') '/gitlog/log/20180411.log' >>> os.path.dirname('/opt/gitlog/log/20180411.log') # 返回path中的目錄(文件夾部分),結果最後不包含目錄‘/’ 或‘\’ '/opt/gitlog/log' >>> os.path.basename('/opt/gitlog/log/20180411.log') # 返回path中的文件名 '20180411.log'
os.walk(path) # 遞歸的返回paht下的目錄(包含path目錄)、子目錄、文件名的三元組,是一個迭代器
>>>os.walk('/opt')
<generator object walk at 0x7f6b03c23cd0>
六、建立目錄spa
os.mkdir(path[,mode]) #以數字mode的mode建立一個名爲path的文件夾
os.mkdir('/opt/os') # 建立目錄os,只能建立單層目錄 >>> os.makedirs('/opt/o/s/os') # 建立多級目錄 >>> os.listdir(os.getcwd()) ['.script', 'registry', 'haproxy.cfg', 'chess', 'test', 'gitlog', 'c.txt', 'a.py', 'file.py', 'mail.sh', 'os', 'o', 'a.txt', 'b.txt', 'a.txt.bak', '.a.txt.swap']
七、刪除文件或目錄操作系統
>>> os.rmdir('/opt/os') # 刪除os目錄,只能是一層目錄,並且是空目錄 Traceback (most recent call last): File "<stdin>", line 1, in <module> OSError: [Errno 39] Directory not empty: '/opt/os' >>> os.remove('/opt/os/a') # 刪除文件a (必須是文件) >>> os.removedirs('/opt/o/s/os') # 刪除多級目錄,必須爲空目錄 >>> os.listdir('/opt') ['.script', 'registry', 'haproxy.cfg', 'chess', 'test', 'gitlog', 'c.txt', 'a.py', 'file.py', 'mail.sh', 'os', 'a.txt', 'b.txt', 'a.txt.bak', '.a.txt.swap']
八、文件相關操做code
>>> os.path.getmtime('/opt/mail.sh') # 返回文件或目錄的最後修改時間,結果爲秒數 1523500891.0531387 >>> os.path.getatime('/opt/mail.sh') # 返回文件或目錄的最後訪問時間,結果爲秒數 1523500903.6000335 >>> os.path.getctime('/opt/mail.sh') # 返回文件或目錄的建立時間,結果爲秒數 1523500891.0711386 # 能夠結合time模塊使用 >>> os.path.getsize('/opt/mail.sh') # 返回文件的大小,如果目錄則返回0 7209 >>> os.path.exists('/opt/mail.sh') # 判斷文件或者目錄是否存在,存在則返回True,不然返回False True >>> os.path.exists('/opt/a') False >>> os.path.isfile('/opt/mail.sh') # 判斷是否爲文件,是True 否 False True >>> os.path.isdir('/opt') # 判斷是否爲目錄,是True 否 False True os.chown(path, uid, gid) # 更改文件全部者 os.chmod(path, mode) # 更改權限 os.unlink(path) #刪除文件路徑 os.utime(path,times) # 返回指定的path文件的訪問和修改的時間 os.read(fd, n) #從文件描述符 fd 中讀取最多 n 個字節,返回包含讀取字節的字符串,文件描述符 fd對應文件已達到結尾, 返回一個空字符串 os.write(fd, str) #寫入字符串到文件描述符 fd中. 返回實際寫入的字符串長度
九、文件或目錄重命名對象
os.rename(src, dst) #重命名文件或目錄,從 src 到 dst os.renames(old, new) #遞歸地對目錄進行改名,也能夠對文件進行改名 >>> os.renames('a.py','/opt/os/aaa.py') >>> os.listdir('/opt') ['.script', 'registry', 'haproxy.cfg', 'chess', 'test', 'gitlog', 'c.txt', 'file.py', 'mail.sh', 'os', 'a.txt', 'b.txt', 'a.txt.bak', '.a.txt.swap'] >>> os.listdir('/opt/os') ['aaa.py']
十、一些表現形式參數
os定義了一組文件、路徑在不一樣操做系統中的表現形式參數。
Linux環境下 >>> os.sep '/' >>> os.extsep '.' >>> os.pathsep ':' >>> os.linesep '\n' Windows環境下 >>> os.sep '\\' >>> os.extsep '.' >>> os.pathsep ';' >>> os.linesep '\r\n'