从零开始的Linux运维屌丝之路,资源免费分享平台   运维人员首选:简单、易用、高效、安全、稳定、社区活跃的开源软件

32、 OS模块

发布:蔺要红05-18分类: Python

 

官方链接:https://docs.python.org/2/library/os.html?highlight=os#module-os
 
其他链接:http://www.cnblogs.com/wupeiqi/articles/4963027.html
 
>>> os.getcwd()  #得到当前工作目录,即当前python工作的路径,
'/root'

[root@zabbix ~]# cat /home/test.py 
import os
print(os.getcwd())
[root@zabbix ~]# python3 /home/test.py  #在root目录下执行home下的test.py
/root

>>> os.listdir('.')  #返回目录下的所有文件和目录名
['.bash_logout', '.pip', '.ssh', '.cshrc', '.python_history', '.cache', '.bashrc', '.bash_profile', '.viminfo', '.pydistutils.cfg', '.bash_history', '.tcshrc', '.mysql_history']
>>> os.listdir('..')
['home', 'run', 'tmp', 'opt', 'usr', 'lost+found', 'srv', 'lib', '.autorelabel', 'proc', 'mnt', 'boot', 'lib64', 'dev', 'sbin', 'sys', 'root', 'bin', 'media', 'etc', 'var']
>>> os.listdir('../home')
['test.py']


[root@zabbix home]# cat  /home/test.py 
import os
print(os.getcwd())
print(os.listdir('.'))
[root@zabbix home]# python3 /home/test.py   #在home目录下执行home下的test.py,
/home
['test.py']

>>> os.remove('1.txt') #删除一个文件


>>> os.removedirs('yao') #删除一个空文件夹
>>> os.removedirs('lin') #删除非空文件报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/python3/lib/python3.5/os.py", line 259, in removedirs
    rmdir(name)
OSError: [Errno 39] Directory not empty: 'lin'
>>> os.removedirs('lin/abca')  #删除一个空文件夹.
>>> os.removedirs('/root/hong') #可以直接写全路径删除
>>> os.removedirs('/home/test')

>>> import shutil              #删除非空目录
>>> shutil.rmtree('/home/lin') #删除非空目录

>>> os.makedirs('/home/123/456/789') #递归创建目录
>>> os.mkdir('/home/a')              #创建单个目录



>>> os.path.isfile('/home/test.py') #判断是否为一个文件
True
>>> os.path.isfile('/home/123.py')  #文件不存在也返回False
False

>>> os.path.isdir('/home/test.py')  #判断是否为一个目录
False
>>> os.path.isdir('/home/123.py')   #目录不存在也返回False
False
#和isdir  isfile类似,都可以判断一个文件和一个目录是否存在
>>> os.path.exists('/home/lin')    #判断路径是否真实存在
False
>>> os.path.exists('/root/lin')    #判断路径是否真实存在
True
>>> os.path.exists('/home/test.py')    #判断路径是否真实存在(文件也可以)
True




>>> os.path.isabs('/root/')    #判断是否为绝对路径
True
>>> os.path.isabs('/home/')    #判断是否为绝对路径
True
>>> os.path.isabs('..')    #判断是否为绝对路径
False
>>> os.path.isabs('.')    #判断是否为绝对路径
False


>>> os.path.split('/home/test.py')  #把路径和文件分开
('/home', 'test.py') 
>>> os.path.splitext('/home/test.py')  #把文件名分开
('/home/test', '.py')


>>> os.system('free -h')  #执行系统命令 如果正确底部返回 0 
              total        used        free      shared  buff/cache   available
Mem:           3.7G        569M        923M        364K        2.2G        2.9G
Swap:            0B          0B          0B
0


>>> os.getenv("HOME")  #读取操作系统环境变量HOME的值
'/root'
>>> os.environ  #返回操作系统的所有环境变量.返回值是一个字典
>>> os.environ.setdefault('TEST','123') #设置一个环境变量,setdefault字典语法, 只在当前程序有效
'123'

>>> os.rename('/home/123.py','/home/test.py')  #文件重新命名、如果test.py存在会被123.py覆盖


>>> os.stat('/home')  #获取目录属性
os.stat_result(st_mode=16877, st_ino=393219, st_dev=64769, st_nlink=4, st_uid=0, st_gid=0, st_size=4096, st_atime=1558168329, st_mtime=1558167077, st_ctime=1558167077)
>>> os.stat('/home/test.py')   #获取文件属性
os.stat_result(st_mode=33188, st_ino=393231, st_dev=64769, st_nlink=1, st_uid=0, st_gid=0, st_size=52, st_atime=1558166376, st_mtime=1558163001, st_ctime=1558166370)

>>> os.path.getsize('/home/test.py') #获取文件大小
52

>>> os.path.join('/hong','hong','333.py') #组合目录和文件名,但是没创建
'/hong/hong/333.py'


>>> os.getcwd()
'/root'
>>> os.chdir('/home') #改变当前程序的工作目录,程序退出失效
>>> os.getcwd()
'/home'


>>> import signal
>>> os.kill(6867,signal.SIGKILL)
#返回值:Killed

>>> os.kill(6795,signal.SIGILL) #杀死进程 6795为进程号  

#返回值:Illegal instruction
>>> os.kill(6846,signal.SIGTERM) #杀死进程 
#返回值:Terminated




>>> os.path.dirname()   #去掉文件名,返回目录
>>> os.path.abspath()   #获取绝对路径
>>> os.path.basename()  #获取文件名
>>> os.linesep  #返回当前平台的行终止符
'\n'
>>> os.name #返回正在使用的平台
'posix'
>>> os.get_terminal_size() #获取终端大小
os.terminal_size(columns=135, lines=31)

 
温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,如有侵权我会在24小时之内删除!

欢迎使用手机扫描访问本站