os库操作目录及文件
使用os.sep获取系统分隔符
import os
print ( os. sep)
\
使用os.name获取操作系统的平台类型
import os
print ( os. name)
nt:windows posix:linux
使用os.getcwd获取当前工作目录
import os
print ( os. getcwd( ) )
D: \CodePath\test_os
使用os.listdir查询目录下文件列表
import os
print ( os. listdir( ) )
print ( os. listdir( "D:\\" ) )
[ 'test_os_getcwd.py' , 'test_os_listdir.py' , 'test_os_name.py' , 'test_os_sep.py' , '__init__.py' ]
[ '$RECYCLE.BIN' , '.temp' , 'CodePath' ]
使用os.mkdir创建目录文件夹
import os
os. mkdir( "testcase" )
os. mkdir( "D:\\testcase" )
使用os.rmdir删除空文件夹
import os
os. rmdir( "testcase" )
os. rmdir( "D:\\testcase" )
使用os.remove删除指定文件
import os
os. remove( "666.txt" )
os. remove( "D:\\CodePath\555.txt" )
使用os.rename从命名文件或文件夹
import os
print ( os. rename( "666.txt" , "66601.txt" ) )
使用__file__获取当前文件全部路径
print ( __file__)
D: \CodePath\test_os\test_os_file. py
使用os.path.dirname返回文件所在目录
import os
path1 = os. path. dirname( __file__)
print ( path1)
D: \CodePath\test_os
使用os.path.abspath返回文件绝对路径
import os
path2 = os. path. abspath( __file__)
print ( path2)
D: \CodePath\test_os\test_os_path_abspath. py
组合使用os.path.dirname和os.path.abspath
import os
path3 = os. path. dirname( os. path. abspath( __file__) )
print ( path3)
D: \CodePath\test_os
使用os.path.join路径拼接
import os
path4 = os. path. join( os. path. dirname( __file__) , '666.txt' )
print ( path4)
path5 = os. path. join( os. path. dirname( os. path. abspath( __file__) ) , '666.txt' )
print ( path5)
使用os.path.exists判断路径是否存在
import os
conf_file = os. path. abspath( __file__)
conf_path = os. path. dirname( conf_file)
conf_file1 = os. path. join( conf_path, "6666.txt" )
conf_path1 = os. path. dirname( os. path. dirname( conf_path) )
conf_file2 = conf_file1 + os. sep + "嗯嗯" + os. sep + "666.txt"
res_file = os. path. exists( conf_file)
print ( res_file)
res_dir = os. path. exists( conf_path)
print ( res_dir)
is_file = os. path. isfile( conf_file1)
print ( is_file)
is_dir = os. path. isdir( conf_path1)
print ( is_dir)
logging库记录日志信息
日志等级
日志等级 描述 debug 最详细的描述 info 详细程度仅次于debug warning 不期望的事情发生时记录的信息 error 报错使用 critical 特别严重的问题,很少使用
使用basicConfig对日志的输出格式和方法进行配置
import logging
"""
通过basicConfig控制日志输出
level参数用来设置日志输出级别,日志级别为INFO
低于INFO不会打印,而format参数用来设置日志输出格式
"""
logging. basicConfig(
level= logging. INFO,
format = '%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'
)
if __name__ == '__main__' :
logging. debug( '----调试信息[debug]----' )
logging. info( '----有用的信息[info]----' )
logging. warning( '----警告信息[warning]----' )
logging. error( '----错误信息[error]----' )
logging. critical( '----严重错误信息[critical]----' )
使用addHandler将日志输出到控制台
import logging
logger = logging. getLogger( 'test_logger' )
logger. setLevel( logging. DEBUG)
sh = logging. StreamHandler( )
sh. setLevel( logging. DEBUG)
formatter = logging. Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' )
sh. setFormatter( formatter)
logger. addHandler( sh)
if __name__ == '__main__' :
logging. debug( '-----调试信息[debug]-----' )
logging. info( '-----有用信息[info]-----' )
logging. warning( '-----告警信息[warning]-----' )
logging. error( '-----错误信息[error]-----' )
logging. critical( '-----严重错误信息[critical]-----' )
将日志输出到文件
import logging
logger = logging. getLogger( 'test_logger' )
logger. setLevel( logging. DEBUG)
sh = logging. StreamHandler( )
"""
创建文件实例
mode设置为追加;encoding防止乱码设置utf-8
"""
fh = logging. FileHandler( 'api.log' , mode= 'a' , encoding= 'utf-8' )
sh. setLevel( logging. DEBUG)
fh. setLevel( logging. DEBUG)
formatter = logging. Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' )
sh. setFormatter( formatter)
fh. setFormatter( formatter)
logger. addHandler( sh)
logger. addHandler( fh)
if __name__ == '__main__' :
logger. debug( '-----调试信息[debug]-----' )
logger. info( '-----有用信息[info]-----' )
logger. warning( '-----告警信息[warning]-----' )
logger. error( '-----错误信息[error]-----' )
logger. critical( '-----严重错误信息[critical]-----' )
日志记录过程
import logging
logger = logging. getLogger( 'test_logger' )
logger. setLevel( logging. DEBUG)
sh = logging. StreamHandler( )
sh. setLevel( logging. DEBUG)
formatter = logging. Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' )
sh. setFormatter( formatter)
logger. addHandler( sh)
try :
open ( '/asd/asd/aaa/' , 'rb' )
logger. info( '文件正常打开' )
except Exception as e:
logger. error( '文件打开失败' )