os
os常用操作
- 导入模块
import os
- os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.getcwd()
'/root/note'
- os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.chdir('/root')
os.getcwd()
'/root'
- os.curdir 返回当前目录: ('.')
os.curdir
'.'
- os.pardir 获取当前目录的父目录字符串名:('..')
os.pardir
'..'
- os.makedirs('dirname1/dirname2') 可生成多层递归目录
os.makedirs('/root/a/b/c/d') #递归创建目录
ls /root/a/b/c/ #查看是否创建成功
�[0m�[01;34md�[0m/
- os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.removedirs('/root/a/b/c/d') # 若目录为空则删除,并递归到上一层。
ls /root/a/b/c/d
ls: cannot access '/root/a': No such file or directory
ls /root/a/b/c
ls: cannot access '/root/a/b/c/d': No such file or directory
ls /root/a/b
ls: cannot access '/root/a/b': No such file or directory
ls /root/a
ls: cannot access '/root/a': No such file or directory
- os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.mkdir('/root/a/d')
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
in
----> 1 os.mkdir('/root/a/d')
FileNotFoundError: [Errno 2] No such file or directory: '/root/a/d'
os.mkdir('/root/a')
os.mkdir('/root/a/b')
- os.listdir('dirname')列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.listdir('/root/')
['.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']
os.listdir('/root/a') #查看创建结果
['d']
- os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.rmdir('/root/a') #只能删除单击目录,由于a文件夹下有b文件夹所以无法删除。
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
in
----> 1 os.rmdir('/root/a')
OSError: [Errno 39] Directory not empty: '/root/a'
os.rmdir('/root/a/b') #先删除b文件夹
os.rmdir('/root/a') #再次删除a文件夹
os.listdir('/root/a') #查看删除结果
[]
- os.stat('path/filename') 获取文件/目录信息
os.stat('/root/untitled.txt')
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下为"/"
os.sep
'/'
- (重要)os.linesep 输出当前平台使用的行终止符,win下为"\r\n",Linux下为"\n"
os.linesep
'\n'
os.path
- os.environ 获取系统环境变量
os.environ
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'
os.name
'posix'
- 输出path用于分割文件路径的字符串
os.pathsep
':'
- os.path.abspath(path) 返回path规范化的绝对路径
os.path.abspath('./os.ipynb')
'/root/os.ipynb'
- os.path.split(path) 将path分割成目录和文件名分隔成两部分,返回一个元组
os.path.split(os.path.abspath('./os.ipynb'))
('/root', 'os.ipynb')
- os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.dirname(os.path.abspath('./os.ipynb'))
'/root'
- os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.basename(os.path.abspath('./os.ipynb'))
'os.ipynb'
- os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.exists('/root') #存在
True
os.path.exists('/root/dsd') #不存在
False
- os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isabs('/root') #绝对路径
True
os.path.isabs('./') # 非绝对路径
False
- os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isfile('./1.txt') # 已存在文件
True
os.path.isfile('/root') # 如果是目录页返回False
False
os.path.isfile('./2.txt') #文件不存在也返回False
False
- os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.isdir('/root') # 如果是已存在目录页返回True
True
os.path.isdir('./1.txt') # 不能是文件
False
os.path.isfile('/ro') # 不存在的文件返回False
False
- os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.join('/','root','b')
'/root/b'
- os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getatime('./1.txt')
1568614365.2767453
- os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
sos.path.getmtime('./1.txt')
1568614360.308399