随笔分类 - python
摘要:exec 'print "Hello World"'Hello World eval语句用来计算存储在字符串中的有效Python表达式。下面是一个简单的例子
阅读全文
摘要:import functools def add(a, b): return a + b add(4, 2) 6 plus3 = functools.partial(add, 3) plus5 = functools.partial(add, 5) plus3(4) 7 plus3(7) 10 plus5(10) 15
阅读全文
摘要:scp -r /Users/Fiz/PycharmProjects/Scrapy_demo root@114.215.93.125:/home/ #! /bin/shexport PATH=$PATH:/usr/local/bincd /home/Scrapy_demonohup scrapy cr
阅读全文
摘要:1.限制IP地址单位时间的访问次数 : 分析:没有哪个常人一秒钟内能访问相同网站5次,除非是程序访问,而有这种喜好的,就剩下搜索引擎爬虫和讨厌的采集器了。 弊端:一刀切,这同样会阻止搜索引擎对网站的收录 适用网站:不太依靠搜索引擎的网站 采集器会怎么做:减少单位时间的访问次数,减低采集效率 2.屏蔽
阅读全文
摘要:import smtplib from email.header import Header from email.mime.text import MIMEText server = smtplib.SMTP('smtp.163.com', 25) server.login('18818261892@163.com', 'LBQ139196') msg = MIMEText('hello, s...
阅读全文
摘要:def logger(func): def inner(*args, **kwargs): #1 print "Arguments were: %s, %s" % (args, kwargs) return func(*args, **kwargs) #2 return inner def outer(fun): def in...
阅读全文
摘要:http://python.jobbole.com/84523/
阅读全文
摘要:http://www.cnblogs.com/kaituorensheng/p/4445418.html
阅读全文
摘要:python的Thread类中还提供了join()方法,使得一个线程可以等待另一个线程执行结束后再继续运行。这个方法还可以设定一个timeout参数,避免无休止的等待。因为两个线程顺序完成,看起来象一个线程,所以称为线程的合并。一个例子: 后台线程 默认情况下,主线程在退出时会等待所有子线程的结束。
阅读全文
摘要:很多时候,线程之间会有互相通信的需要。常见的情形是次要线程为主要线程执行特定的任务,在执行过程中需要不断报告执行的进度情况。前面的条件变量同步已经涉及到了线程间的通信(threading.Condition的notify方法)。更通用的方式是使用threading.Event对象。threading
阅读全文
摘要:让我们考虑更复杂的一种场景:产品是各不相同的。这时只记录一个数量就不够了,还需要记录每个产品的细节。很容易想到需要用一个容器将这些产品记录下来。 Python的Queue模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级
阅读全文
摘要:互斥锁是最简单的线程同步机制,Python提供的Condition对象提供了对复杂线程同步问题的支持。Condition被称为条件变量,除了提供与Lock类似的acquire和release方法外,还提供了wait和notify方法。线程首先acquire一个条件变量,然后判断一些条件。如果条件不满
阅读全文
摘要:现在假设这样一个例子:有一个全局的计数num,每个线程获取这个全局的计数,根据num进行一些处理,然后将num加1。很容易写出这样的代码: 问题产生的原因就是没有控制多个线程对同一资源的访问,对数据造成破坏,使得线程运行的结果不可预期。这种现象称为“线程不安全”。 互斥锁同步 上面的例子引出了多线程
阅读全文
摘要:# encoding: UTF-8 import threading import time class MyThread(threading.Thread): def run(self): for i in range(3): time.sleep(1) msg = "I'm "+self.name+' @ '+str(...
阅读全文
摘要:虚拟机层面 Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,暂时无法利用多处理器的优势。 语言层面 在语言层面,Python对多线程提供了很好的支持,Python中多线程相关的模块包括:thread,threading,Queu
阅读全文
摘要:#coding:utf-8 ''' 折半查找返回值是mid+1 ''' def half_search(data,target): low,high = 0,len(data)-1 while low target: high = mid -1 else: low = mid+1 return 0 d...
阅读全文
摘要:# Written by Vamei # A messy HTTP server based on TCP socket import socket # Address HOST = '' PORT = 8080 text_content = ''' HTTP/1.x 200 OK Content-Type: text/html WOW Wow, Python Server F...
阅读全文
浙公网安备 33010602011771号