简单模块化

2019-09-25  本文已影响0人  魔曦帝天
import sys,os
Base_dir=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
__file__表示当前文件
#Base_dir='/root/xiangmv/python-learn/cmdb'
sys.path.insert(0,Base_dir) #在搜索包名的路径添加当前包的路径
from plugins import base_info,Mem_info  #
cpu=base_info.Base()#实例化
mem=Mem_info.Memory(debug=True)
for obj in [cpu,mem]:
    info=obj.cmd_handle()
    print(info)
import os  #起手势
os.getcwd()   #获取当前目录
os.chdir("/etc/")  #切换脚本工作目录
os.mkdir("dirname")  #创建目录
os.mkdirs('dir1/dir2') #递归创建目录
os.listdir('dirname')  #列出制定目录的所有文件目录
import os
 
print( os.path.basename('/root/runoob.txt') )   # 返回文件名
print( os.path.dirname('/root/runoob.txt') )    # 返回目录路径
print( os.path.split('/root/runoob.txt') )      # 分割文件名与路径
print( os.path.join('root','test','runoob.txt') )  # 将目录和文件名合成一个路径



improt subprocess
def run_cmd(date):
     #getstatusoutput   执行正确,stat为0 ,result为结果
    stat,result=subprocess.getstatusoutput(date)  
    
    if not stat:
        return parser(result)

os.path.abspath:获取文件或目录的绝对路径

os.path.dirname(os.path.abspath(__file__))
os.path.abspath(__file__)返回的是.py文件的绝对路径

>>> os.path.abspath('hello.py')
'/Users/ethan/coding/python/hello.py'
>>> os.path.abspath('web')
'/Users/ethan/coding/python/web'
>>> os.path.abspath('.')                # 当前目录的绝对路径
'/Users/ethan/coding/python'

os.path.dirname:获取文件或文件夹的路径

>>> os.path.dirname('/Users/ethan/coding/python/hello.py')
'/Users/ethan/coding/python'
>>> os.path.dirname('/Users/ethan/coding/python/')
'/Users/ethan/coding/python'
>>> os.path.dirname('/Users/ethan/coding/python')
'/Users/ethan/coding'

os.path.basename:获取文件名或目录名

>>> os.path.basename('/Users/ethan/coding/python/hello.py')
'hello.py'
>>> os.path.basename('/Users/ethan/coding/python/')
''
>>> os.path.basename('/Users/ethan/coding/python')
'python'

os.path.split:分离目录与文件名
分离后为元组

>>> os.path.split('/Users/ethan/coding/python/hello.py')
('/Users/ethan/coding/python', 'hello.py')
>>> os.path.split('/Users/ethan/coding/python/')
('/Users/ethan/coding/python', '')
>>> os.path.split('/Users/ethan/coding/python')
('/Users/ethan/coding', 'python')

sys.argv
分别获取输入的参数值:

将命令行输入的值分开传入sys.argv这个列表
python a.py zhang    #命令行输入

a.py 内容
**************************************
import sys
a=sys.argv[0]    #a为  python
b=sys.argv[1]    #b为当前文件名   a.py
c=sys.argv[2]    #c为zhang 这个字符串

sys.path 搜索包的路径

os.walk()
os.walk 是遍历目录常用的模块,它返回一个包含 3 个元素的元祖:(dirpath, dirnames, filenames)。
dirpath 是以 string 字符串形式返回该目录下所有的绝对路径;dirnames 是以列表 list 形式返回每一个绝对路径下的文件夹名字;filesnames 是以列表 list 形式返回该路径下所有文件名字。

>>> for root, dirs, files in os.walk('/Users/ethan/coding'):
...     print root
...     print dirs
...     print files
...
/Users/ethan/coding
['python']
[]
/Users/ethan/coding/python
['web2']
['hello.py']
/Users/ethan/coding/python/web2
[]
[]
上一篇 下一篇

猜你喜欢

热点阅读