import configparser
config=configparser.ConfigParser()
config["DEFAULT"]={'ServerAliveInterval':'45',
'Compression':'yes',
'CompressionLevel':'9',
'ForwardXll':'yes'}
config['bitbucket.org']={'User':'hg'}
config['topsecet.server.com']={'Host Port':'5022'}
with open('examle.ini','w') as configfile:
config.write(configfile)
#查找文件
import configparser
config=configparser.ConfigParser()
#查找文件的内容基于字典的形式
print(config.sections())
config.read('example.ini')
print(config.sections())
print('bytebong.com' in config)
print('bitbucket.org' in config)
print(config['bitbucket.org']["user"])
import configparser
config=configparser.ConfigParser()
config.read('example.ini')
config.add_section('yuan')
config.remove_section('bitbucket.org')
config.remove_option('topsecret.server.com','forwardx11')
config.set('topsecret.server.com','k1','1111')
config.set('yuan','k2','2222')
config.write(open('new2.ini','w'))
#logging 日志用来记录用户的行为 或者代码的执行过程
import logging
logging.debug('debug message')
logging.inf('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')
#basicconfig 配置log对象
#格式化
print('%(key)s'%{'key':'value'})#value
print('%s'%('key','value'))
import logging
logger =logging.getLogger()
sh=logging.StreamHandler()#创建一个屏幕控制
#创建一个handler,用于写入日志文件
fh=logging.FileHandler('test.log',encoding='utf-8')
#再创建一个handler,用于写入日志文件
ch=logging.StreamHandler()
#文件操作和格式关联
fh.setFormatter(formatter)
#logger 对象和文件操作符 关联
logger.addHandler(fh)
logger.addHandler(sh)
两种配置方式: basicconfig/log对象
#django框架
we文件操作模式 r w a rb wb ab
range(1,n,2)
#set
l=[]
for i in s:
if i not in l:
l.append(i)
from re import findall
ret=findall('\d+\.?\d{,}',s) #ret='+'.join(ret)
ret=[float (i) for i in ret] #eval(ret)
print(sum(ret))
for k in d:
if type(d[k]) is list:
print(k)
for k in d:
if type(k) in tuple:
print(d[k])
@wrapper
def a(arg):
print(arg)
#a=wrapper(a) <=>@wrapper
a()
with open('7th_questions') as f:
for i in f:
if i.startswith('T'):
print(i)
count=0
for i in range(1,5):
for j in range(1, 5):
for k in range(1, 5):
if i ==j or i==k or j==k:
continue
count +=1
yield str(i)+str(j)+str(k)
def func(obj):
return obj.age
max(obj_lst,key=func)
max(obj_lst,key=lambda obj :obj.age)
def edit(self,obj):#编辑修改
f2=MyPickle(self.filename+'.bak')
for item in self.loaditer():
if item.name=obj.name:
f2.dump(obj)
else:
f2.dump(item)
os.remove(self.filename)
os.rename(self.filename+'.bak',self.filename)