def cut_text(text,lenth): # //固定长度切割字符串 textArr = re.findall( ' .{ ' +str(lenth)+ ' } ' , text) if len(text)%lenth > 0: textArr.append(text[(len(textArr) * lenth):]) return textArr def to_two(lists): # //list转2进制 str_ = "" for i in lists: str_ += f ' {bin(int(i))[2:]:0>8} ' return str_ while True: # //输入判断 addr = input( " 请输入起始ip==> " ) addr_ = input( " 请输入终止ip==> " ) try : ipaddress.ip_address(addr) ipaddress.ip_address(addr_) except Exception as e: print ( " 格式有误 " ) int_addr = [int(i) for i in addr.split( " . " )] int_addr_ = [int(i) for i in addr_.split( " . " )] if int_addr_ < int_addr: print ( " 起始大小有误 " ) else : temp1 = addr.split( " . " ) temp2 = addr_.split( " . " ) small = to_two(temp1) big = to_two(temp2) number = int(big,2) - int(small,2) + 1 print ( " 即将生成指定的 {} 个ip,请稍后 " .format(number)) break if __name__ == " __main__ " : f = open ( " ip.txt " , " w " ) process_bar = ShowProcess(number, ' OK ' ) while small <= big: bin_list = cut_text(small,8 ) intstr_list = [str(int(i,2)) for i in bin_list] f.write( " . " .join(intstr_list)+ " \n " ) process_bar.show_process() small = f ' {bin(int(small,2) + 1)[2:]:0>32} ' f.close()

showprocess.py ↓↓↓

# -*- coding: UTF-8 -*-
import sys, time
class ShowProcess():
    显示处理进度的类
    调用该类相关函数即可实现处理进度的显示
    i = 0 # 当前的处理进度
    max_steps = 0 # 总共需要处理的次数
    max_arrow = 50 #进度条的长度
    infoDone = 'done'
    # 初始化函数,需要知道总共的处理次数
    def __init__(self, max_steps, infoDone = 'Done'):
        self.max_steps = max_steps
        self.i = 0
        self.infoDone = infoDone
    # 显示函数,根据当前的处理进度i显示进度
    # 效果为[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]100.00%
    def show_process(self, i=None):
        if i is not None:
            self.i = i
        else:
            self.i += 1
        num_arrow = int(self.i * self.max_arrow / self.max_steps) #计算显示多少个'>'
        num_line = self.max_arrow - num_arrow #计算显示多少个'-'
        percent = self.i * 100.0 / self.max_steps #计算完成进度,格式为xx.xx%
        process_bar = '[' + '>' * num_arrow + '-' * num_line + ']'\
                      + '%.2f' % percent + '%' + '\r' #带输出的字符串,'\r'表示不换行回到最左边
        sys.stdout.write(process_bar) #这两句打印字符到终端
        sys.stdout.flush()
        if self.i >= self.max_steps:
            self.close()
    def close(self):
        print('')
        print(self.infoDone)
        self.i = 0

运行效果:

mysql带参数存储过程实例 mysql创建带参数的存储过程

我们都知道,现在MySQL的版本,可以支持存储过程了。我使用的是MySQL5.5的版本。1,创建存储过程delimiter $ create procedure in_out_procedure(in procedure_id int,out count_number int) begin select count(*) into count_number from temp_url

ubuntu设置python环境变量 ubuntu添加python环境变量

最近把自己在windows上的Django项目放在的Ubuntu上,启动时提示找不到模块原来是自己的项目用的是虚拟环境,安装的第三方库全部在虚拟环境中 AutoTestSite/venv/Lib/site-packages在Ubuntu中查看模块搜索路径:chen@ubuntu:~$ python Python 2.7.12 (default, Nov 12 2018, 14:36:49)