python模块--os

os

 

 

 

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

posted on 2019-10-28 15:46  柳条儿  阅读(229)  评论(0编辑  收藏  举报

导航