保证只能运行一个脚本实例,方法是程序运行时监听一个特定端口,如果失败则说明已经有实例在跑。使用装饰器实现,便于重用复制代码代码如下:importfunctoolsdefjust_one_instance(func):'''装饰器如果已经有实例在跑则退出复制代码代码如下::return:'''@functools.wraps(func)deff(*args,**kwargs):importsockettry:#全局属性,否则变量会在方法退出后被销毁globa
系统 2019-09-27 17:45:27 1723
1.编译nginx在网上买了一本《实战nginx-取代Apache的高性能服务器》,写的比较浅,主要是些配置方面的东西,不过却正是目前我所需要的。由于需要支持https和rewrite,所以除了nginx的源码之外,又下载了openssl-0.9.8r.tar.gz和pcre-8.12.tar.gz,把他们和nginx-1.0.4.tar.gz放到同一个目录。为了方便编译,笔者写了一个脚本,代码如下:#!/bin/bash#================
系统 2019-09-27 17:38:47 1723
一般来说在Python中,为了解决内存泄漏问题,采用了对象引用计数,并基于引用计数实现自动垃圾回收。由于Python有了自动垃圾回收功能,就造成了不少初学者误认为自己从此过上了好日子,不必再受内存泄漏的骚扰了。但如果仔细查看一下Python文档对__del__()函数的描述,就知道这种好日子里也是有阴云的。下面摘抄一点文档内容如下:Somecommonsituationsthatmaypreventthereferencecountofanobjectfr
系统 2019-09-27 17:38:39 1723
实例如下:#环境:python3.xdefgetExportDbSql(db,index):#获取导出一个数据库实例的sql语句sql='mysqldump-u%s-p%s-h%s-P%d--default-character-set=utf8--databasesmu_ins_s%s>%s.s%d.mu_ins_%d.sql'%(db['user'],db['pwd'],db['host'],db['port'],index,db['server'],i
系统 2019-09-27 17:38:36 1723
1.能调用方法的一定是对象,比如数值、字符串、列表、元组、字典,甚至文件也是对象,Python中一切皆为对象。str1='hello'str2='world'str3=''.join([str1,str2])print(str3)2.三种基本的文件操作模式:r(only-read)、w(only-write)、a(append)对文件进行操作的流程:第一,建立文件对象。第二,调用文件方法进行操作。第三,不要忘了关闭文件。(文件不关闭的情况下,内容会放在缓存
系统 2019-09-27 17:38:34 1723
1、安装virtulenv、virtulenvwrapper包pipinstallvirtualenvvirtualenvwrapper2、virtualenvwrapper是virtualenv的扩展工具,可以方便的创建、删除、复制、切换不同的虚拟环境。3、设置环境变量,把下面两行添加到~/.bash_profile里exportWORKON_HOME=/software/venvsource/usr/local/bin/virtualenvwrappe
系统 2019-09-27 17:38:34 1723
少劳多得Decorator与Python之前引入的元编程抽象有着某些共同之处:即使没有这些技术,您也一样可以实现它们所提供的功能。正如MicheleSimionato和我在可爱的Python专栏的早期文章中指出的那样,即使在Python1.5中,也可以实现Python类的创建,而不需要使用“元类”挂钩。Decorator根本上的平庸与之非常类似。Decorator所实现的功能就是修改紧接Decorator之后定义的函数和方法。这总是可能的,但这种功能主要是
系统 2019-09-27 17:38:33 1723
今天有点��a=['XXXX_game.sql','XXXX_game_sp.sql','XXXX_gamelog_sp.sql','XXXX_gamelog.sql']foriina:if'gamelog'ini:a.remove(i)printa['XXXX_game.sql','XXXX_game_sp.sql','XXXX_gamelog.sql']历遍的过程中明显MISS掉了'XXXX_gamelog.sql'这个项目,大家可以自己试试,为什么会
系统 2019-09-27 17:38:32 1723
大家请注意:这篇文中假设我们都用的是Python31.列表推导式你有一个list:bag=[1,2,3,4,5]现在你想让所有元素翻倍,让它看起来是这个样子:[2,4,6,8,10]大多初学者,根据之前语言的经验会大概这样来做bag=[1,2,3,4,5]foriinrange(len(bag)):bag[i]=bag[i]*2但是有更好的方法:bag=[elem*2foreleminbag]很简洁对不对?这叫做Python的列表推导式。2.遍历列表继续,
系统 2019-09-27 17:38:30 1723
实现代码:#!/usr/bin/python//处理程序#filenamejiafa.py//文件名importsysimportrandomrunning=True//定义runningwhilerunning:a=random.randint(0,15)//定义a的值为0-15的随机数b=random.randint(0,10)//定义b的值为0-10的随机数printa,'*',b//输出题目he=a*bgauess=int(raw_input('P
系统 2019-09-27 17:38:29 1723