模块(二)

1、logging

 1 import logging
 2 logging.debug('this is debug message')
 3 logging.info('this is info message')
 4 logging.warning('this is warning message')
 5 #警告
 6 logging.error('this is error message')
 7 #错误
 8 logging.critical('this is critical message')
 9 #从上往下,,日志级别逐渐变高,debug->info->warning->errot->critical
10 
11 
12 logging.basicConfig(level=__debug__,format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',datefmt=' %Y/%m/%d %H:%M:%S', filename='myapp.log', filemode='w')
13 logging.getLogger(__name__)
14 logger=logging.getLogger(__name__)
15 logging.debug('this is debug message')
16 logging.info('this is info message')
17 logging.warning('this is warning message')
18 logging.error('this is error message')
19 logging.critical('this is critical message')
20 #logging.basicConfig()用法:
21 # level: 设置日志级别,默认为logging.WARNING
22 # filename: 指定日志文件名。
23 # filemode: 和file函数意义相同,指定日志文件的打开模式,'w'或'a'
24 # format: 指定输出的格式和内容
25     #format可输出内容:
26         # %(levelname)s: 打印日志级别名称
27         #   %(filename)s: 打印当前执行程序名
28         #  %(funcName)s: 打印日志的当前函数
29         #  %(lineno)d: 打印日志的当前行号
30         #  %(asctime)s: 打印日志的时间
31         #  %(thread)d: 打印线程ID
32         #  %(process)d: 打印进程ID
33         #  %(message)s: 打印日志信息
34         # datefmt: 指定时间格式,同time.strftime()
35         # stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略

2、os模块

 1 import os
 2 # 1、查看不同操作系统
 3 print(os.name)
 4 #linux os.name 是posix
 5 #Windows os.name 是 nt
 6 
 7 #2、执行系统命令
 8 print(os.system('ipconfig'))
 9 #widonws格式为gkm 常用utf-8
10 context=os.popen('ipconfig').read()
11 #popen()返回的是一个file对象,,通过。read()来获取最后系统命令的结果
12 print(context.find('192.168.125.1'))
13 print(dir(os))
14 #3、文件和目录的操作
15 
16 # os.getcwd()    获得当前工作目录
17 # os.chdir('')    切换到目标目录
18 # os.listdir('')    列出字符串目录下的所有文件
19 # os.mkdir('')    创建目录
20 # s.remove('')    删除文件,文件不存在时会报错
21 # os.linesep    打印操作系统的分隔符,linux系统的分隔符\n,windows系统的分隔符\r\n,mac系统的分隔符\r
22 # os.path.join(os.getcwd(), 'aaa', ‘bbb’, ‘ccc’)    拼接出来多级目录:E:\test\aaa\bbb\ccc
23 # s.path.exists('')    判断目录是否存在
24 # s.path.split('')    把最后的一个目录或者文件和前面的目录分开,返回一个tuple
25 # os.path.splitext('')    把文件的后缀名和前面分开,返回一个tuple os.fork()
26 
27 
28 if not os.path.exists('test'):
29     #判断目录test是否存在
30     os.mkdir('test')
31     #不存在就创建test目录
32 else:
33     print('test ok')
34 
35 a=os.path.join('.','aa','bb')
36 #合并目录
37 print(a)
38 print(os.path.dirname(r'F:\test.py'))

3、command模块

 1 #commands模块
 2 #只用于Linux系统下
 3 import commands
 4 cmd = 'ls /opt'
 5 a = commands.getoutput(cmd)
 6 #getoutput只有返回结果,,并不能进行判断
 7 print(type(a))
 8 print(a)
 9 cmd = 'ls /home/admin'
10 c = commands.getstatusoutput(cmd)
11 print(type(c))
12 status, result = commands.getstatusoutput(cmd)
13 print(status)
14 print(result)
15 print(type(result))
16 #commands.getstatusoutput 返回值是一个tuple类型
17 #第一个值接受状态码,,,返回结果为int类型,如果为0执行正常,否则异常
18 #第二个值接受返回结果,是各个str类型,

4、sys模块

 1 # sys模块
 2 #sys.argv获取程序参数
 3 #sys.exit(n) 退出程序,0正常退出
 4 #sys.stdin\stdout\stderr 包含与标准I/O 流对应的流对象,更好的控制输出
 5 # sys.maxint 最大的Int值
 6 #sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到
 7 # sys.platform 返回操作系统平台名称
 8 import sys
 9 if __name__=='__main__':
10     print('sys.argv[0]=]0]'.format(sys.argv[0]))
11     #sys.argv[n]可以获取到python脚本后面传送进去的参数
12     print('sys.argv[1]=]1]'.format(sys.argv[1]))
13     print('sys.argv[2]=]2]'.format(sys.argv[2]))
14     sys.stdout.write('helloaaa\n')
15     print('hello')
16     name=raw_input('please input your name')
17     print('hello'+name)
18     age=sys.stdin.readline()
19     print(age)
20     f=open('1.log','w')
21     sys.stdout=f
22     print('aa\nhello')
23 
24 #sys.text(n)
25     def hello():
26         print('hello')
27     sys.exitfunc=hello
28     print('start')
29     sys.exit(1)
30     print('end')

 

posted @ 2017-11-11 10:20  依哈  阅读(155)  评论(0编辑  收藏  举报