Importos;--Python自带print(os.getcwd())--获得当前工作目录os.chdir('/Users/longlong/Documents')--转换到/Users/longlong/Documents目录os.path.join(parm1,parm2,...)--从一个或多个路径片段中构造一个路径名。os.path.expanduser()--用来将包含~符号的路径扩展为完整的路径复制代码代码如下:>>>pathname='/
系统 2019-09-27 17:48:14 1620
在类中每次实例化一个对象都会生产一个字典来保存一个对象的所有的实例属性,这样非常的有用处,可以使我们任意的去设置新的属性。每次实例化一个对象python都会分配一个固定大小内存的字典来保存属性,如果对象很多的情况下会浪费内存空间。可通过__slots__方法告诉python不要使用字典,而且只给一个固定集合的属性分配空间classFoo(object):__slots__=("x","y","z")def__init__(self,x,y):self.x=
系统 2019-09-27 17:47:50 1620
采集内容常需要得到网页返回的验证码做进一步处理下面代码是用python写的用来获取网页http状态码的脚本#!/usr/bin/python#-*-coding:utf-8-*-#encoding=utf-8#Filename:states_code.pyimporturllib2url='//www.jb51.net/'response=Nonetry:response=urllib2.urlopen(url,timeout=5)excepturllib
系统 2019-09-27 17:47:48 1620
12.3APP12.31创建APP一个Django项目可以分为很多个APP,用来隔离不同功能模块的代码用命令行创建一个APP:python3manage.pystartappapp01创建好APP,记得告诉Django,app的名字,在settings.py中添加:INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','djang
系统 2019-09-27 17:47:27 1620
很多开发人员在刚开始学Python时,都考虑过像c++那样来实现singleton模式,但后来会发现c++是c++,Python是Python,不能简单的进行模仿。Python中常见的方法是借助global变量,或者class变量来实现单件。本文就介绍以decorator来实现singleton模式的方法。示例代码如下:##-----------------------codebegin-----------------------#-*-coding:u
系统 2019-09-27 17:47:23 1620
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思?函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两种:值传递和引用传递。值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的
系统 2019-09-27 17:47:11 1620
因为最近接触到调用新浪微博开放接口的项目,所以就想试试用python调用微博API。SDK下载地址:http://open.weibo.com/wiki/SDK代码不多十几K,完全可以看懂。有微博账号可以新建一个APP,然后就可以得到appkey和appsecret,这个是APP获得OAuth2.0授权所必须的。了解OAuth2可以查看链接新浪微博的说明。OAuth2授权参数除了需要appkey和appsecret还需要网站回调地址redirect_uri
系统 2019-09-27 17:47:08 1620
在使用Python编写面向对象的代码时,我们会常常使用“继承”这种开发方式。例如下面这一段代码:classInfo:def__init__(self):passdefcalc_age(self):print('我是父类的方法')classPeopleInfo(Info):def__init__(self):super().__init__()defcalc_age(self):print(123456)如果你使用PeopleInfo初始化一个对象,然后调用
系统 2019-09-27 17:46:07 1620
今天在写爬虫程序的时候由于要翻页,做除法分页的时候出现了复制代码代码如下:totalCount='100'totalPage=int(totalCount)/20ValueError:invalidliteralforint()withbase10的错误网上同样的错误有人建议用round(float(“1.0″)),但是解决不了我这个问题,round(float(“1.0″))是用于解决浮点数转换为整形数的,而我这个则是因为原字符串转换为整形后做除法,虽然
系统 2019-09-27 17:45:38 1620
保证只能运行一个脚本实例,方法是程序运行时监听一个特定端口,如果失败则说明已经有实例在跑。使用装饰器实现,便于重用复制代码代码如下:importfunctoolsdefjust_one_instance(func):'''装饰器如果已经有实例在跑则退出复制代码代码如下::return:'''@functools.wraps(func)deff(*args,**kwargs):importsockettry:#全局属性,否则变量会在方法退出后被销毁globa
系统 2019-09-27 17:45:27 1620