Python

MySQL-Python安装问题小记

安装完mysql-python后import加载模块提示以下错误,复制代码代码如下:ImportError:libmysqlclient_r.so.16:cannotopensharedobjectfile:Nosuchfileordirectory于是google之,总结一下解决方法:(1)在mysql-ython的安装目录下找到site.cfg,将#mysql_config=XXXXXXXXXXXXXXXX注释符号去掉,并填上mysql_config的

系统 2019-09-27 17:53:27 2111

Python

Python中eval带来的潜在风险代码分析

0x00前言eval是Python用于执行python表达式的一个内置函数,使用eval,可以很方便的将字符串动态执行。比如下列代码:>>>eval("1+2")>>>eval("[xforxinrange(10)]")[0,1,2,3,4,5,6,7,8,9]当内存中的内置模块含有os的话,eval同样可以做到命令执行:>>>importos>>>eval("os.system('whoami')")win-20140812chj\administrat

系统 2019-09-27 17:53:02 2111

Python

Python 命令行之旅:使用 argparse 实现 git 命令

Python命令行之旅:使用argparse实现git命令作者:HelloGitHub-ProdesireHelloGitHub的《讲解开源项目》系列,项目地址:https://github.com/HelloGitHub-Team/Article前言在前面三篇介绍argparse的文章中,我们全面了解了argparse的能力,相信不少小伙伴们都已经摩拳擦掌,想要打造一个属于自己的命令行工具。本文将以我们日常工作中最常见的git命令为例,讲解如何使用arg

系统 2019-09-27 17:52:36 2111

Python

python 多线程对post请求服务器测试并发的方法

如下所示:#-*-coding:utf-8-*-importrequestsimportthreadingimporttimeclasspostrequests():def__init__(self):self.url='请求网址'self.files={'unknown_image':open('刘诗诗.jpg','rb')}defpost(self):try:r=requests.post(self.url,files=self.files)print

系统 2019-09-27 17:52:33 2111

Python

简单了解python 生成器 列表推导式 生成器表达式

生成器就是自己用python代码写的迭代器,生成器的本质就是迭代器。通过以下两种方式构建一个生成器:1、通过生成器函数2、生成器表达式生成器函数:函数deffunc1(x):x+=1returnxprint(func1(5))生成器函数deffunc1(x):x+=1yieldxg_obj=func1(5)print(g_obj.__next__())一个next对应一个yield。yieldVSreturnreturn结束函数,给函数的执行者返回值yie

系统 2019-09-27 17:50:36 2111

Python

Python中的各种装饰器详解

Python装饰器,分两部分,一是装饰器本身的定义,一是被装饰器对象的定义。一、函数式装饰器:装饰器本身是一个函数。1.装饰函数:被装饰对象是一个函数[1]装饰器无参数:a.被装饰对象无参数:复制代码代码如下:>>>deftest(func):def_test():print'Callthefunction%s().'%func.func_namereturnfunc()return_test>>>@testdefsay():return'hellowor

系统 2019-09-27 17:50:21 2111

Python

编写Python脚本来获取mp3文件tag信息的教程

下面利用一个python的实例程序,来学习python。这个程序的目的就是分析出所有MP3文件的Tag信息并输出。importos#导入os模块,提供文件路径,列出文件等方法importsys#导入sys模块,使用sys.modules获取模块中的所有内容,类似反射的功能fromUserDictimportUserDict#这个表示从UserDict类中导入UserDict,类似于Java中的importUserDict.UserDictdefstripn

系统 2019-09-27 17:48:26 2111

Python

Python Threading 线程/互斥锁/死锁/GIL锁

导入线程包importthreading准备函数线程,传参数t1=threading.Thread(target=func,args=(args,))类继承线程,创建线程对象classMyThread(threading.Thread)defrun(self):passif__name__=="__main__":t=MyThread()t.start()线程共享全面变量,但在共享全局变量时会出现数据错误问题使用threading模块中的Lock类,添加互

系统 2019-09-27 17:47:40 2111

Python

【Python练习圣典】字典dictionary高级操作

1.字典键-值对中,值元素的便捷创建增减主要是利用collections中的defaultdict普通复杂过程:pairs=[('a',1),('a',2),('b',2)]d={}forkey,valueinpairs:ifkeynotind:d[key]=[]d[key].append(value)或d={}#普通字典d.setdefault('a',[]).append(1)d.setdefault('a',[]).append(2)d.setdef

系统 2019-09-27 17:46:19 2111

Python

在SAE上部署Python的Django框架的一些问题汇总

花了些工夫将碎片网部署到了SAE,中途遇到各类问题。感觉SAE看上去很美,实际上却并不是太成熟(至少python版如此)。下面记录下我遇到的一些主要问题以及解决方法。django版本问题Django1.4都即将发布了,SAE平台自带的SAE版本依旧为1.2x。为使用django1.3版本,你需上传自己的django。具体做法可参考SAE手册中的runtime.html#virtualenv日志模块出错最先遇到的是日至模块的问题。错误显示AdminEmail

系统 2019-09-27 17:46:12 2111

Python

Python 实现简单的电话本功能

myPhoneBook2.py#!/usr/bin/python#-*-coding:utf-8-*-importreclassPhoneBook(object):'''这是一个电话簿脚本。该脚本能够实现AddContact:添加联系人信息ShowContact:查找姓名显示联系人SaveContacts:存储联系人到TXT文档(存储格式――姓名:号码/号码)LoadContacts:从txt文档中载入联系人'''def__init__(self):sel

系统 2019-09-27 17:38:30 2111

Python

Python监控主机是否存活并以邮件报警

利用Python写了简单测试主机是否存活脚本,此脚本不适于线上使用,因为网络延迟、丢包现象会造成误报邮件,那么后续会更新判断三次ping不通后再发报警邮件,并启用多线程处理。#!/usr/bin/envpython#coding:UTF-8importtimeimportpexpectimportsmtplibfromemail.mime.textimportMIMETextmail_host="smtp.163.com"#定义smtp服务器mail_to

系统 2019-09-27 17:38:23 2111

Python

浅谈python新手中常见的疑惑及解答

1lambda函数函数格式是lambdakeys:express匿名函数lambda是一个表达式函数,接受keys参数,返回表达式的值。所以不用return,也没有函数名,经常用在需要key参数的函数中,比如sorted。2元组(),它是以逗号辨别的,而不是小括号。比如一个元素的元组新手经常写成(12),其实他会被解释成单个元素12.正确的写法应该是(12,),在元素后面加上逗号。3模块导入。比如importrandomprintrandom.choice

系统 2019-09-27 17:38:19 2111

Python

python服务器端收发请求的实现代码

最近学习了python的一些服务器端编程,记录在此。发送get/post请求#coding:utf-8importhttplib,urllib#加载模块#urllib可以打开网站去拿#res=urllib.urlopen('http://baidu.com');#printres.headers#定义需要进行发送的数据params=urllib.urlencode({'param':'6'});#定义一些文件头headers={"Content-Type"

系统 2019-09-27 17:38:17 2111

编程技术

画线实现蜘蛛丝的动态更新

以前个人网上的一个点辍,用画线实现的,希望给有想象力的同志一点启发,抛砖先(1)先建三个MC,如下:screen.width-333)this.width=screen.width-333"border=0>一个是spider_mc,画一个蜘蛛,像样点就算了,呵呵!一个是net_mc一个网,当背景用的,没有用!最后一个是空的MC,叫line_mc,用来画线的.(2)回到场景,建三个层如下:screen.width-333)this.width=screen

系统 2019-08-29 23:42:24 2111