python模块(os)

时间:2022-05-04 10:20:54

一、os

os 模块提供了许多与操作系统交互的接口

os.getcwd()                 -> str      # 返回当前路径, 相当于pwd
os.chdir("dirname") -> None # 切换目录, 相当于cd
os.curdir -> str # 返回当前目录, 相当于cd .
os.pardir -> str # 获取当前目录的父目录字符串名:('..')
os.makedirs('dir1/dir2') -> None # 递归创建目录, 相当于mkdir -p
os.removedirs('dirname1') -> None # 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir(path) -> None # 创建目录, 相当于mkdir
os.rmdir('dirname') -> None # 删除单级空目录,若目录不为空则无法删除,相当于rmdir
os.listdir(path) -> list # 列出指定目录下的所有文件和子目录,包括隐藏文件
os.remove(path) -> None # 删除一个文件, 相当于rm
os.rename("oldname","new") -> None # 重命名文件 / 目录, 相当于mv
os.stat('path/filename') -> namedupdate # 获取文件/目录信息, 相当于stat
os.sep -> str # 操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep -> str # 当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep -> str # 用于分割文件路径的字符串 (:)
os.name -> str # 当前使用平台。win->'nt'; Linux->'posix'
os.system(command) -> int # 调用shell命令, 废弃
os.environ -> dict # 获取系统环境变量, 相当于env
os.symlink(src, dst) -> None # 创建软连接, src是真实文件的绝对路径, dst是软连接文件的绝对路径
os.path.abspath(path) -> str # 返回path规范化的绝对路径
os.path.split(path) -> tuple # 将path分割成目录和文件名二元组返回, 相当于basename和dirname
os.path.dirname(path) -> str # 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) -> str # 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) -> bool # 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) -> bool # 如果path是绝对路径,返回True
os.path.isfile(path) -> bool # 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) -> bool # 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) -> str # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略(拼接)
os.readlink(src, dst) -> str # 返回软连接文件的绝对路径
os.path.getatime(path) -> float # 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) -> float # 返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) -> int # 获取文件的大小
os.getloadavg() -> tuple # 返回系统平均1,,15分钟负载
os.cput_count() -> number # cpu的数量,仅python3支持

os.listdir(path) -> list_of_strings

>>> os.listdir('/var/tmp')              # 列出指定path下所有的文件, 包括隐藏文件
['bash', 'python', 'pythonlearn', 'tmpbackup.tar.gz']

os.environ

>>> os.environ                          # 列出系统的所有的环境变量, 相当于env
{'LESSOPEN': '||/usr/bin/lesspipe.sh %s', 'SSH_CLIENT': '192.168.127.1 63669 22', 'CVS_RSH': 'ssh', 'LOGNAME': 'root', 'USER': 'root', 'HOME': '/root', 'PATH': '/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mongodb/bin:/root/bin', 'EVENTLET_NO_GREENDNS': 'yes', 'LANG': 'en_US.UTF-8', 'TERM': 'xterm', 'SHELL': '/bin/bash', 'SHLVL': '1', 'G_BROKEN_FILENAMES': '1', 'HISTSIZE': '1000', '_': '/usr/local/bin/python', 'SSH_CONNECTION': '192.168.127.1 63669 192.168.127.210 22', 'PYTHONSTARTUP': '/root/.pythonstartup', 'SSH_TTY': '/dev/pts/0', 'HOSTNAME': 'python.weimin.com', 'HISTCONTROL': 'ignoredups', 'PWD': '/root', 'EXINIT': 'set ts=4 sw=4', 'MAIL': '/var/spool/mail/root', '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=01;05;37;41: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:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=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:*.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:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:'}
>>> os.environ['HI'] = 'HELLO'          # 设置环境全局变量
>>> os.environ['HI']
'HELLO'

os.path.split(path)

>>> os.path.split('/etc/passwd')          # 将path分割成目录、文件, 返回一个tuple. 相当于basename和dirname
('/etc', 'passwd')
>>> help(os.path.split)

os.path.dirname(path)

>>> os.path.dirname('/etc')               # 返回path上级目录
'/'
>>> os.path.dirname('/var/tmp')
'/var'

os.symlink(src, dst)

>>> os.symlink('/usr/local/bin/python2', '/tmp/python')   # 创建软连接

os.readlink(path)

>>> os.readlink('/tmp/python')                            # 返回软连接文件真实文件路径
'/usr/local/bin/python2'

os.getloadavg()

>>> os.getloadavg()                                       # 1,5,15分钟平均负载
(0.16, 0.25, 0.15)

os.path.abspath(path)

>>> os.path.abspath('.')
'/root'

os.path.join(a, *p)

>>> os.path.join('/var','tmp','test')                     # 组合路径返回
'/var/tmp/test'
>>> os.path.join('/var','tmp')
'/var/tmp'
>>> os.path.join('/var',*('sfsfvarfs','tmp','abcde'))
'/var/sfsfvarfs/tmp/abcde'

二、sys

sys.argv          # 命令行参数List,第一个元素是程序本身路径
sys.exit(n) # 退出程序,正常退出时exit(0)
sys.version # 获取Python解释程序的版本信息
sys.maxint # 最大的Int值
sys.path # 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform # 返回操作系统平台名称
sys.stdin # 输入相关
sys.stdout # 输出相关
sys.stderror # 错误相关
sys.getrecursionlimit() # 获取递归的深度
sys.setrecursionlimit(1000000) # 同样可以设置递归深度

其它方法

>>> sys.platform               # 系统平台
'linux2' >>> sys.version_info # python的版本,代号
sys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0) >>> sys.version
'2.7.11 (default, Mar 29 2016, 23:35:44) \n[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)]' >>> sys.stdout.write('Hello World!')
Hello World!