python之os模塊

在查找大量文件或者獲取相關路徑等操做時主要依賴於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'
相關文章
相關標籤/搜索