分类目录归档:Python

Python中利用原始套接字进行网络编程的示例


在实验中需要自己构造单独的HTTP数据报文,而使用SOCK_STREAM进行发送数据包,需要进行完整的TCP交互。

因此想使用原始套接字进行编程,直接构造数据包,并在IP层进行发送,即采用SOCK_RAW进行数据发送。

使用SOCK_RAW的优势是,可以对数据包进行完整的修改,可以处理IP层上的所有数据包,对各字段进行修改,而不受UDP和TCP的限制。

下面开始构造HTTP数据包,

IP层和TCP层使用python的Impacket库,http内容自行填写。

#!/usr/bin/env python

#-----------------------------------------...

阅读全文...

python中__call__方法示例分析


本文实例讲述了python中call方法的用法,分享给大家供大家参考。具体方法分析如下:

Python中的call允许程序员创建可调用的对象(实例),默认情况下, call()方法是没有实现的,这意味着大多数实例是不可调用的。然而,如果在类定义中覆盖了这个方法,那么这个类的实例就成为可调用的。

test.py文件如下:

#!/usr/bin/python
# Filename:test.py

class CallTest():
  def __init__(self):
    print 'init'

  def __call__(self):
    print 'call'

...

阅读全文...

简单的抓取淘宝图片的Python爬虫


写了一个抓taobao图片的爬虫,全是用if,for,while写的,比较简陋,入门作品。

从网页http://mm.taobao.com/json/request_top_list.htm?type=0&page=中提取taobao模特的照片。

复制代码 代码如下:

-- coding: cp936 --

import urllib2
import urllib
mmurl="http://mm.taobao.com/json/request_top_list.htm?type=0&page="
i=0#第二页有个人的页面没图片,会出现IO错误
while i <...

阅读全文...

python操作MongoDB基础知识


首先运行easy_install pymongo命令安装pymongo驱动。然后执行操作:
创建连接

复制代码 代码如下:

In [1]: import pymongo
In [2]: connection = pymongo.Connection('localhost', 27017)

切换到数据库malware

复制代码 代码如下:

In [3]: db = connection.malware

获取collection

复制代码 代码如下:

In [4]: collection = db.malware

注意:db和collection都是延时创建的,在添加Document时才真正...

阅读全文...

详解Python中for循环的使用


for 循环

本系列前面 “探索 Python,第 5 部分:用 Python 编程” 一文讨论了 if 语句和 while 循环,讨论了复合语句以及适当缩进 Python 语句来指示相关 Python 代码块。该文的结尾介绍了 Python for 循环。但就其使用和功能来说,for 循环更值得关注,所以本文单独讲述该循环。

for 循环有一个简单的语法,使您可以从容器对象中提取单个项目并对其进行某些操作。简单地说,使用 for 循环,可以迭代中对象集合的项目。对象集合可以是任何 Python 容器类型,包括前面文章中讨论的 tuple、string 和 list 类型。但是容器 me...

阅读全文...

python超简单解决约瑟夫环问题


本文实例讲述了python超简单解决约瑟夫环问题的方法。分享给大家供大家参考。具体分析如下:

约瑟环问题大家都熟悉。题目是这样的。一共有三十个人,从1-30依次编号。每次隔9个人就踢出去一个人。求踢出的前十五个人的号码:

明显的约瑟夫环问题,python实现代码如下:

a = [ x for x in range(1,31) ] #生成编号
del_number = 8 #该删除的编号
for i in range(15):
   print a[del_number]
   del a[del_number]
   del_number = (del_number + 8) % len...

阅读全文...

python线程锁(thread)学习示例


复制代码 代码如下:

encoding: UTF-8

import thread
import time

一个用于在线程中执行的函数

def func():
for i in range(5):
print 'func'
time.sleep(1)

结束当前线程

这个方法与thread.exit_thread()等价

thread.exit() # 当func返回时,线程同样会结束

启动一个线程,线程立即开始运行

这个方法与thread.start_new_thread()等价

第一个参数是方法,第二个参数是方法的参数

thread.start_new(func, ()) # 方法没有参...

阅读全文...

Python查询Mysql时返回字典结构的代码


MySQLdb默认查询结果都是返回tuple,输出时候不是很方便,必须按照0,1这样读取,无意中在网上找到简单的修改方法,就是传递一个cursors.DictCursor就行。
默认程序:
MySQLdb默认查询结果都是返回tuple,输出时候不是很方便,必须按照0,1这样读取,无意中在网上找到简单的修改方法,就是传递一个cursors.DictCursor就行。默认程序:

复制代码 代码如下:

import MySQLdb
db = MySQLdb.connect(host = ´localhost´, user = ´root´, passwd = ´123456´, db = ´t...

阅读全文...

python使用xlrd实现检索excel中某列含有指定字符串记录的方法


本文实例讲述了python使用xlrd实现检索excel中某列含有指定字符串记录的方法。分享给大家供大家参考。具体分析如下:

这里利用xlrd,将excel中某列数据中,含有指定字符串的记录取出,并生成用这个字符串命名的txt文件

import os
import xlrd,sys
# input the excel file
Filename=raw_input('input the file name&path:')
if not os.path.isfile(Filename):
  raise NameError,"%s is not a valid filename"%...

阅读全文...

python 字符串split的用法分享


比如我们的存储的格式的:

**格式的:

** 姓名,年龄|另外一个用户姓名,年龄

name:haha,age:20|name:python,age:30|name:fef,age:55

那我们可以通过字符串对象的split方法切割字符串对象为列表。

a = 'name:haha,age:20|name:python,age:30|name:fef,age:55'

print a.split('|')

返回结果:
['name:haha,age:20', 'name:python,age:30', 'name:fef,age:55']
通过上面的介绍,相信你对python string...

阅读全文...