python模塊--os

osjavascript

 

 

 

os

 
  • 對操做系統的調用,模擬對操做系統的一些操做指令
 

os經常使用操做

 
  • 導入模塊
In [14]:
import os
 
  • os.getcwd() 獲取當前工做目錄,即當前python腳本工做的目錄路徑
In [5]:
os.getcwd()
Out[5]:
'/root/note'
 
  • os.chdir("dirname") 改變當前腳本工做目錄;至關於shell下cd
In [13]:
os.chdir('/root')
os.getcwd()
Out[13]:
'/root'
 
  • os.curdir 返回當前目錄: ('.')
In [37]:
os.curdir
Out[37]:
'.'
 
  • os.pardir 獲取當前目錄的父目錄字符串名:('..')
In [17]:
os.pardir
Out[17]:
'..'
 
  • os.makedirs('dirname1/dirname2') 可生成多層遞歸目錄
In [18]:
os.makedirs('/root/a/b/c/d') #遞歸建立目錄
In [24]:
ls /root/a/b/c/ #查看是否建立成功
 
d/
 
  • os.removedirs('dirname1') 若目錄爲空,則刪除,並遞歸到上一級目錄,如若也爲空,則刪除,依此類推
In [ ]:
os.removedirs('/root/a/b/c/d') # 若目錄爲空則刪除,並遞歸到上一層。
 
  • 查看結果
In [30]:
ls /root/a/b/c/d 
 
ls: cannot access '/root/a': No such file or directory
In [31]:
ls /root/a/b/c
 
ls: cannot access '/root/a/b/c/d': No such file or directory
In [32]:
ls /root/a/b
 
ls: cannot access '/root/a/b': No such file or directory
In [34]:
ls /root/a
 
ls: cannot access '/root/a': No such file or directory
 
  • os.mkdir('dirname') 生成單級目錄;至關於shell中mkdir dirname
In [39]:
os.mkdir('/root/a/d')
 
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-39-a28b9b29c6b6> in <module>
----> 1os.mkdir('/root/a/d')

FileNotFoundError: [Errno 2] No such file or directory: '/root/a/d'
In [74]:
os.mkdir('/root/a')
os.mkdir('/root/a/b')
 
  • os.listdir('dirname')列出指定目錄下的全部文件和子目錄,包括隱藏文件,並以列表方式打印
In [85]:
os.listdir('/root/')
Out[85]:
['.gnupg',
 'untitled.txt',
 'nohup.out',
 '.jupyter',
 '.local',
 '.ssh',
 '.bashrc',
 '.profile',
 'source',
 'oldboy Python14',
 'release',
 '.Xauthority',
 'English',
 '.ipynb_checkpoints',
 'gradebook.db',
 'note',
 '.ipython',
 '.cache',
 'a',
 '.bash_history',
 'Untitled.ipynb',
 '1.txt',
 'python']
In [44]:
os.listdir('/root/a') #查看建立結果
Out[44]:
['d']
 
  • os.rmdir('dirname') 刪除單級空目錄,若目錄不爲空則沒法刪除,報錯;至關於shell中rmdir dirname
In [50]:
os.rmdir('/root/a') #只能刪除單擊目錄,因爲a文件夾下有b文件夾因此沒法刪除。
 
---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-50-3d66ca6caffa> in <module>
----> 1os.rmdir('/root/a')

OSError: [Errno 39] Directory not empty: '/root/a'
In [76]:
os.rmdir('/root/a/b') #先刪除b文件夾
In [73]:
os.rmdir('/root/a')   #再次刪除a文件夾
In [86]:
os.listdir('/root/a') #查看刪除結果
Out[86]:
[]
 
  • os.stat('path/filename') 獲取文件/目錄信息
In [95]:
os.stat('/root/untitled.txt')
Out[95]:
os.stat_result(st_mode=33188, st_ino=272343, st_dev=64513, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1568616892, st_mtime=1568616892, st_ctime=1568616892)
 
  • (重要)輸出操做系統特定的路徑分隔符,win下爲"\",Linux下爲"/"
In [96]:
os.sep
Out[96]:
'/'
 
  • (重要)os.linesep 輸出當前平臺使用的行終止符,win下爲"\r\n",Linux下爲"\n"
In [98]:
os.linesep
Out[98]:
'\n'
In [101]:
os.path
Out[101]:
<module 'posixpath' from '/usr/lib/python3.6/posixpath.py'>
 
  • os.environ 獲取系統環境變量
In [102]:
os.environ
Out[102]:
environ{'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:',
        'SSH_CONNECTION': '112.64.68.254 57660 172.16.0.4 22',
        'LESSCLOSE': '/usr/bin/lesspipe %s %s',
        'LANG': 'en_US.UTF-8',
        'HISTTIMEFORMAT': 'root %Y/%m/%d %T ',
        'XDG_SESSION_ID': '373',
        'USER': 'root',
        'PWD': '/root',
        'HOME': '/root',
        'SSH_CLIENT': '112.64.68.254 57660 22',
        'XDG_DATA_DIRS': '/usr/local/share:/usr/share:/var/lib/snapd/desktop',
        'SSH_TTY': '/dev/pts/0',
        'MAIL': '/var/mail/root',
        'TERM': 'xterm-color',
        'SHELL': '/bin/bash',
        'SHLVL': '1',
        'LANGUAGE': 'en_US:',
        'PROMPT_COMMAND': 'history -a;',
        'LOGNAME': 'root',
        'XDG_RUNTIME_DIR': '/run/user/0',
        'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin',
        'HISTSIZE': '1000',
        'HISTFILESIZE': '10000',
        'LESSOPEN': '| /usr/bin/lesspipe %s',
        '_': '/usr/bin/nohup',
        'KERNEL_LAUNCH_TIMEOUT': '40',
        'JPY_PARENT_PID': '21562',
        'CLICOLOR': '1',
        'PAGER': 'cat',
        'GIT_PAGER': 'cat',
        'MPLBACKEND': 'module://ipykernel.pylab.backend_inline'}
 
  • os.name 輸出字符串指示當前使用平臺。win->'nt'; Linux->'posix'
In [106]:
os.name
Out[106]:
'posix'
 
  • 輸出path用於分割文件路徑的字符串
In [107]:
os.pathsep
Out[107]:
':'
 
  • os.path.abspath(path) 返回path規範化的絕對路徑
In [139]:
os.path.abspath('./os.ipynb')
Out[139]:
'/root/os.ipynb'
 
  • os.path.split(path) 將path分割成目錄和文件名分隔成兩部分,返回一個元組
In [140]:
os.path.split(os.path.abspath('./os.ipynb'))
Out[140]:
('/root', 'os.ipynb')
 
  • os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第一個元素
In [142]:
os.path.dirname(os.path.abspath('./os.ipynb'))
Out[142]:
'/root'
 
  • os.path.basename(path) 返回path最後的文件名。如何path以/或\結尾,那麼就會返回空值。即os.path.split(path)的第二個元素
In [144]:
os.path.basename(os.path.abspath('./os.ipynb'))
Out[144]:
'os.ipynb'
 
  • os.path.exists(path) 若是path存在,返回True;若是path不存在,返回False
In [146]:
os.path.exists('/root') #存在
Out[146]:
True
In [148]:
os.path.exists('/root/dsd') #不存在
Out[148]:
False
 
  • os.path.isabs(path) 若是path是絕對路徑,返回True
In [151]:
os.path.isabs('/root') #絕對路徑
Out[151]:
True
In [152]:
os.path.isabs('./') # 非絕對路徑
Out[152]:
False
 
  • os.path.isfile(path) 若是path是一個存在的文件,返回True。不然返回False
In [161]:
os.path.isfile('./1.txt') # 已存在文件
Out[161]:
True
In [160]:
os.path.isfile('/root') # 若是是目錄頁返回False
Out[160]:
False
In [163]:
os.path.isfile('./2.txt') #文件不存在也返回False
Out[163]:
False
 
  • os.path.isdir(path) 若是path是一個存在的目錄,則返回True。不然返回False
In [166]:
os.path.isdir('/root') # 若是是已存在目錄頁返回True
Out[166]:
True
In [168]:
os.path.isdir('./1.txt') # 不能是文件
Out[168]:
False
In [169]:
os.path.isfile('/ro') # 不存在的文件返回False
Out[169]:
False
 
  • os.path.join(path1[, path2[, ...]]) 將多個路徑組合後返回,第一個絕對路徑以前的參數將被忽略
In [173]:
os.path.join('/','root','b')
Out[173]:
'/root/b'
 
  • os.path.getatime(path) 返回path所指向的文件或者目錄的最後存取時間
In [174]:
os.path.getatime('./1.txt')
Out[174]:
1568614365.2767453
 
  • os.path.getmtime(path) 返回path所指向的文件或者目錄的最後修改時間
In [176]:
sos.path.getmtime('./1.txt')
 
1568614360.308399
相關文章
相關標籤/搜索