(四)4-5 Python的logging、os和sys

logging
logging模块
先看一个例子

import logging
logging.debug("this is debug message")
logging.info("this is info message")
logging.warning("this is warning message")

运行结果:

WARNING:root:this is warning message

注:程序中写了三句话,但是屏幕中只输出一个warning级别的日志
默认情况下,logging讲日志打印到屏幕,日志级别大小关系为:CRITICAL>ERROR>WARNING>INFO>DEBUG>NOTSET
DEBUG:详细的信息,通常只出现在诊断问题上
INFO:确认一切按预期运行
WARNING:警告,可能有一些意想不到的事情发生了,但是软件还能按照预期工作
ERROR: 更严重的问题,软件没能执行一些功能
CRITICAL:一个严重的错误,程序可能无法继续运行
logging默认日志级别是info。

import logging
logging.basicConfig(level=__debug__,
                    format=‘%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s‘,
                    datefmt=‘%Y/%m/%d %H:%M:%S‘,
                    # datefmt=‘%a, %d %b %Y %H:%M:%S‘,
                    filename=‘myapp.log‘,
                    filemode=‘w‘)
logger = logging.getLogger(__name__)
logger.debug("this is debug message")
logger.info("this is info message")
logger.warning("this is warning message")

运行结果:

myapp.log
2017/11/08 23:45:31 10_4.py[line:18] DEBUG this is debug message
2017/11/08 23:45:31 10_4.py[line:19] INFO this is info message
2017/11/08 23:45:31 10_4.py[line:20] WARNING this is warning message

os模块
os模块的使用
通过os模块调用系统命令,获得路径,获取操作系统的类型等都是使用该模块。

1、通过os获取系统类型
import os
print(os.name)
如果是Windows系统os.name=‘nt‘,
如果是linux系统os.name=‘posix‘.
2、执行系统命令
很多时候我们通过python代用系统命令
import os
os.system(‘ipconfig‘)
content = os.popen(‘ipconfig‘).read()
print(content)
注:
os.system(‘ipconfig‘)指挥调用系统命令
os.popen()返回一个file对象,通过file.read()获取最后系统命令执行的结果
3、目录和文件操作

import os
print(os.getcwd())
# 获得路径
os.chdir("d:")
print(os.getcwd())
os.chdir(r‘E:\CNTV‘)
#切换目录
print(os.listdir(os.getcwd()))
#列出当前目录的文件
print(os.listdir(‘C:\Python27‘))
#列出指定目录的文件
print(os.getcwd())
# os.mkdir("text")
print(os.linesep)
# 打印操作系统的分隔符,linux是\n,win是\r\n
if not os.path.exists("test") :
    os.makedirs("test")
else:
    print("test us exists")
a = os.path.join(‘.‘,"a","b","c")
print(a)
#只是拼接当前目录
print(os.path.dirname(os.getcwd()))
print(os.path.dirname(os.getcwd()))
#获得文件的目录
注:
1,os.getcwd()    获得目录的当前系统程序工作路劲
2,os. chdir(‘目标目录’)    切换到目标目录
3,os.listdir(‘字符串目录’)    列出字符串目录下的所有文件
4,os.mkdir(‘目录‘)    创建目录
5,os.remove(‘1.txt‘)    删除文件,文件不存在时会报错
6,os.linesep    打印操作系统的分隔符,linux系统的分隔符\n,windows系统的分隔符\r\n,mac系统的分隔符\r
7,os.path.join(os.getcwd(), ‘aaa‘, ‘bbb’, ‘ccc’)    拼接出来多级目录:E:\test\aaa\bbb\ccc
8,os.path.exists(‘目录’)    判断目录是否存在
9,os.path.split(‘文件或者目录’)    把最后的一个目录或者文件和前面的目录分开,返回一个tuple
10,os.path.splitext(‘文件’)    把文件的后缀名和前面分开,返回一个tuple
os.fork()

commands模块

commands模块只使用linux与shell模式下
我们经常调用系统脚本或者系统命令解决很多问题,通过python调用系统命令有三种方式:cmd代表系统命令
a、commands.getoutput(cmd)
只返回执行shell命令的结果

commands.getoutput的返回值只有返回结果
import commands
cmd = "ls /home/"
result = commands.getoutput(cmd)
print(type(result))
print(result)

commands.getstatusoutput的返回值是一个tuple类型
第一个值接受状态码,返回结果是一个int类型
第二个值接受返回结果,返回结果是一个str类型
import commands
cmd = "ps -ef"
status,result = commands.getstatusoutput(cmd)
print(type(status))
print(status)
print(type(result))
print(result)

sys模块

1、通过sys模块获取程序参数
import sys
if __name__ =="__main__":
print("sys.argv[0]={0}".format(sys.argv[0]))
print("sys.argv[1]={1}".format(sys.argv[1]))
2、sys.stdout\stdin\stderr
stdout,stdin以及stderr变量包含与I/O流对应的流对象
3、sys.stdout 与print
当我们在python中打印对象调用print obj时候,事实上调用了sys.stdout.write(obj + "\n"),print讲需要的内容打印到控制台,然后追加一个换行符,print会调用sys.stdout的write方法
下面两行是等价的
import sys
sys.stdout.write("hello" + "\n")
print("hello")
4、从控制台重定向到文件
import sys
t_handle = open(‘out.log‘,‘w‘)
sys.stdout = t_handle

时间: 2024-10-10 13:14:41

(四)4-5 Python的logging、os和sys的相关文章

python 正则,os,sys,hashlib模块

简单的小算法 random随机获取数据 import random def getrandata(num): a=[] i=0 while i<num: a.append(random.randint(0,100)) i+=1 return a print(getrandata(10)) 例: [5, 3, 38, 4, 69, 40, 94, 36, 14, 26] 冒泡排序 import getdata def bubbleSort(a): l=len(a)-2 i=0 while i<l

python学习之-os和sys模块

import sysprint(sys.argv)  #默认获取当前文件的路径 import os os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs

学习17.内容# 1.序列化 # 2.os # 3.sys # # 4.摘要 # 5.collections

序列化 什么是序列化 -- json lit = [1, 2, 3, 4, 5,] _lit= str(lit) print(_lit) print(list(_lit)) print(eval(_lit)) import json 两组四个方法 1.dumps loads 2.dump load lit = [1, 2, 3, 4, 5, ] _lst = json.dumps(lit) print(_lst,type(_lst)) lis = json.loads(_lst) print(l

python 常用模块 time random os模块 sys模块 json &amp; pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess logging re正则 转自老男孩老师Yuan:http://www.cnblogs.com/yuanchenqi/articles/5732581.html 模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,

Python中logging模块的基本用法

在 PyCon 2018 上,Mario Corchero 介绍了在开发过程中如何更方便轻松地记录日志的流程. 整个演讲的内容包括: 为什么日志记录非常重要 日志记录的流程是怎样的 怎样来进行日志记录 怎样进行日志记录相关配置 日志记录使用常见误区 下面我们来梳理一下整个演讲的过程,其实其核心就是介绍了 logging 模块的使用方法和一些配置. 日志记录的重要性 在开发过程中,如果程序运行出现了问题,我们是可以使用我们自己的 Debug 工具来检测到到底是哪一步出现了问题,如果出现了问题的话,

python os、sys模块、时间模块、正则表达式

python os.sys模块 OS模块是Python标准库中的一个用于访问操作系统功能的模块,OS模块提供了一种可移植的方法使用操作系统的功能.使用OS模块中提供的接口,可以实现跨平台访问.但是在OS模块中的接口并不是所有平台都通用,有些接口的实现是依靠特定平台下的接口的.在OS模块中提供了一系列访问操作系统功能的接口,便于编写跨平台的应用. OS模块常用命令 os.getcwd()--得到当前工作的目录 os.chmod("usr/local",7) --给文件/目录加权限 os.

Python之常用模块(re,时间,random,os,sys,序列化模块)(Day20)

一.时间模块 #常用方法 1.time.sleep(secs) (线程)推迟指定的时间运行.单位为秒. 2.time.time() 获取当前时间戳 在Python中表示时间的三种方式:时间戳,元组(struct_time), 格式化的时间字符串[时间戳为计算机能够识别的时间:时间字符串是人能够识别的时间:元组则是用来操作时间的] #导入时间模块 >>>import time #时间戳 >>>time.time() 1500875844.800804 #时间字符串 >

python的logging日志模块(二)

晚上比较懒,直接搬砖了. 1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('This is info message') logging.warning('This is warning message') 屏幕上打印:WARNING:root:This is warning message 默认情况下,logging将日志打印到屏幕,日志级别为WARNING: 日志级别大小关系为:

python之logging模块的使用

python的logging模块是用来写日志的,是python的标准模块. logging的结构 查看logging的python源码,可知主要有四个类实现功能: Loggers:提供应用程序直接使用的接口,如相关的配置设置: Handlers:将Loggers产生的日志传到指定位置,设置日志保存的位置: Filters:对输出日志进行过滤操作: Formatters:控制日志的输出格式: 日志记录的级别 DEBUG:优先级10,记录调试的详细信息,只在调试时开启: INFO:优先级20,记录普

python笔记-----模块(time,os,sys,random,shutil)

模块 1. 模块的定义和导入 定义: 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py对应的模块名:test) 包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py文件) 导入: 1 import module_name 2 import module1_name,module2_name 3 from module_alex import * 4 from module_ale