正在检查路由器监控上网记录是否上网

1078人阅读
PKU Research(64)
这两天拿到一批.seq文件无法打开,着实让我头疼了一把。通过分析二进制文件发现是以Normix开头,google之发现是一个高速摄像机采集软件,.seq应该是一些图像组成的序列,可以用自家的StreamPix软件打开。
于是我首先搜索这个软件,发现不是无法下载就是假文件链接。接着想如果是图像序列,能不能直接把二进制代码分割开,每段存成一张图像呢?那么问题来了,如何知道从哪儿分割呢?
我先用ultraEdit打开一张jpg文件,发现是以FF D8 FF E0 00 10 4A 46 49 46这几个二进制字符开始的,再打开一张,还是这几个字符。于是我就大胆猜测,是不是所有jpg文件都是这样的呢?如果.seq文件里有很多这个字符串,是不是就能认为它是由一系列jpg文件组合成的呢?赶紧在.seq的二进制代码里面搜,哈,果然有很多这个字符串呢!
好了,下面问题就是打开.seq,以该字符串分割它,并把每个片段存成一个jpg。第一个分割片段是.seq头部可以忽略不计。以下是python代码。我把每个.seq文件都转存为从1.jpg开始编号的jpg文件序列,存放在.seq文件同名的文件夹中。代码运行良好。
# Deal with .seq format for video sequence
# Author: Kaij
# The .seq file is combined with images,
# so I split the file into several images with the image prefix
# &\xFF\xD8\xFF\xE0\x00\x10\x4A\x46\x49\x46&.
import os.path
import fnmatch
import shutil
def open_save(file,savepath):
# read .seq file, and save the images into the savepath
f = open(file,'rb')
string = str(f.read())
splitstring = &\xFF\xD8\xFF\xE0\x00\x10\x4A\x46\x49\x46&
# split .seq file into segment with the image prefix
strlist=string.split(splitstring)
# delete the image folder path if it exists
if os.path.exists(savepath):
shutil.rmtree(savepath)
# create the image folder path
if not os.path.exists(savepath):
os.mkdir(savepath)
# deal with file segment, every segment is an image except the first one
for img in strlist:
filename = str(count)+'.jpg'
filenamewithpath=os.path.join(savepath, filename)
# abandon the first one, which is filled with .seq header
if count & 0:
i=open(filenamewithpath,'wb+')
i.write(splitstring)
i.write(img)
count += 1
if __name__==&__main__&:
rootdir = &D:\\Data\\feifei&
# walk in the rootdir, take down the .seq filename and filepath
for parent, dirnames, filenames in os.walk(rootdir):
for filename in filenames:
# check .seq file with suffix
if fnmatch.fnmatch(filename,'*.seq'):
# take down the filename with path of .seq file
thefilename = os.path.join(parent, filename)
# create the image folder by combining .seq file path with .seq filename
thesavepath = parent+'\\'+filename.split('.')[0]
print &Filename=& + thefilename
print &Savepath=& + thesavepath
open_save(thefilename,thesavepath)
博客分类:
Python是一种动态解释型的编程语言。Python可以在Windows、UNIX、MAC等多种操作系统上使用,也可以在Java、.NET开发平台上使用。
1 Python使用C语言开发,但是Python不再有C语言中的指针等复杂的数据类型。
2 Python具有很强的面向对象特性,而且简化了面向对象的实现。它消除了保护类型、抽象类、接口等面向对象的元素。
3 Python代码块使用空格或制表符缩进的方式分隔代码。
4 Python仅有31个保留字,而且没有分号、begin、end等标记。
5 Python是强类型语言,变量创建后会对应一种数据类型,出现在统一表达式中的不同类型的变量需要做类型转换。
【搭建开发环境】
1 可以到www.python.org下载安装包,然后通过configure、make、make install进行安装。
2 也可以到去下载ActivePython组件包。(ActivePython是对Python核心和常用模块的二进制包装,它是ActiveState公司发布的Python开发环境。ActivePython使得Python的安装更加容易,并且可以应用在各种操作系统上。ActivePython包含了一些常用的Python扩展,以及Windows环境的编程接口)。对ActivePython来说,如果你是windows用户,下载msi包安装即可;如果你是Unix用户,下载tar.gz包直接解压即可。
3 Python的IDE,包括PythonWin、Eclipse+PyDev插件、Komodo、EditPlus
python2与python3是目前主要的两个版本。
如下两种情况下,建议使用python2:
1 你无法完全控制你即将部署的环境时;
2 你需要使用一些特定的第三方包或扩展时;
python3是官方推荐的且是未来全力支持的版本,目前很多功能提升仅在python3版本上进行。
【hello world】
1 创建hello.py
2 编写程序:
Hello world代码
if __name__ == \'__main__\':
print &hello word&
if __name__ == \'__main__\':
print &hello word&
3 运行程序:
python ./hello.py
python ./hello.py
1 无论是行注释还是段注释,均以#加一个空格来注释。
2 如果需要在代码中使用中文注释,必须在python文件的最前面加上如下注释说明:
# -* - coding: UTF-8 -* -
# -* - coding: UTF-8 -* -
3 如下注释用于指定解释器
#! /usr/bin/python
#! /usr/bin/python
【文件类型】
1 Python的文件类型分为3种,即源代码、字节代码和优化代码。这些都可以直接运行,不需要进行编译或连接。
2 源代码以.py为扩展名,由python来负责解释;
3 源文件经过编译后生成扩展名为.pyc的文件,即编译过的字节文件。这种文件不能使用文本编辑器修改。pyc文件是和平台无关的,可以在大部分操作系统上运行。如下语句可以用来产生pyc文件:
import py_compile pile(‘hello.py’)
import py_compile
pile(‘hello.py’)
4 经过优化的源文件会以.pyo为后缀,即优化代码。它也不能直接用文本编辑器修改,如下命令可用来生成pyo文件:
python -O -m py_complie hello.py
python -O -m py_complie hello.py
1 python中的变量不需要声明,变量的赋值操作即使变量声明和定义的过程。
2 python中一次新的赋值,将创建一个新的变量。即使变量的名称相同,变量的标识并不相同。用id()函数可以获取变量标识:
x = 1 print id(x) x = 2 print id(x)
print id(x)
print id(x)
3 如果变量没有赋值,则python认为该变量不存在
4 在函数之外定义的变量都可以称为全局变量。全局变量可以被文件内部的任何函数和外部文件访问。
5 全局变量建议在文件的开头定义。
6 也可以把全局变量放到一个专门的文件中,然后通过import来引用:
gl.py文件中内容如下:
_a = 1 _b = 2
use_global.py中引用全局变量:
import gl def fun(): print gl._a print gl._b fun()
def fun():
print gl._a
print gl._b
python中没有提供定义常量的保留字。可以自己定义一个常量类来实现常量的功能。
lass _const: class ConstError(TypeError): pass
def __setattr__(self,name,vlaue): if self.__dict__.has_key(name):
raise self.ConstError, “Can’t rebind const(%s)”%name
self.__dict__[name]=value import sys sys.modules[__name__]=_const()
lass _const:
class ConstError(TypeError): pass
def __setattr__(self,name,vlaue):
if self.__dict__.has_key(name):
raise self.ConstError, “Can’t rebind const(%s)”%name
self.__dict__[name]=value
import sys
sys.modules[__name__]=_const()
【数据类型】
1 python的数字类型分为整型、长整型、浮点型、布尔型、复数类型。
2 python没有字符类型
3 python内部没有普通类型,任何类型都是对象。
4 如果需要查看变量的类型,可以使用type类,该类可以返回变量的类型或创建一个新的类型。
5 python有3种表示字符串类型的方式,即单引号、双引号、三引号。单引号和双引号的作用是相同的。python程序员更喜欢用单引号,C/Java程序员则习惯使用双引号表示字符串。三引号中可以输入单引号、双引号或换行等字符。
【运算符和表达式】
1 python不支持自增运算符和自减运算符。例如i++/i-是错误的,但i+=1是可以的。
2 1/2在python2.5之前会等于0.5,在python2.5之后会等于0。
3 不等于为!=或&&
4 等于用==表示
5 逻辑表达式中and表示逻辑与,or表示逻辑或,not表示逻辑非
【控制语句】
1 条件语句:
if (表达式) : 语句1 else : 语句2
if (表达式) :
2 条件语句:
if (表达式) : 语句1 elif (表达式) : 语句2 … elif (表达式) : 语句n else : 语句m
if (表达式) :
elif (表达式) :
elif (表达式) :
3 条件嵌套:
if (表达式1) :
if (表达式2) :
语句1 elif (表达式3) : 语句2 … else: 语句3 elif (表达式n) : … else : …
if (表达式1) :
if (表达式2) :
elif (表达式3) :
elif (表达式n) :
4 python本身没有switch语句。
5 循环语句:
while(表达式) : … else : …
while(表达式) :
6 循环语句:
for 变量 in 集合 : … else : …
for 变量 in 集合 :
7 python不支持类似c的for(i=0;i&5;i++)这样的循环语句,但可以借助range模拟:
for x in range(0,5,2):
for x in range(0,5,2):
【数组相关】
1 元组(tuple):python中一种内置的数据结构。元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字甚至元素。元组是写保护的,即元组创建之后不能再修改。元组往往代表一行数据,而元组中的元素代表不同的数据项。可以把元组看做不可修改的数组。创建元组示例如下:
tuple_name=(“apple”,”banana”,”grape”,”orange”)
tuple_name=(“apple”,”banana”,”grape”,”orange”)
2 列表(list):列表和元组相似,也由一组元素组成,列表可以实现添加、删除和查找操作,元素的值可以被修改。列表是传统意义上的数组。列表创建示例如下:
list=[“apple”,”banana”,”grage”,”orange”]
list=[“apple”,”banana”,”grage”,”orange”]
可以使用append方法来在尾部追加元素,使用remove来删除元素。
3 字典(dictionary):由键-值对组成的集合,字典中的值通过键来引用。键和值之间用冒号隔开,键-值对之间用逗号隔开,并且被包含在一对花括号中。创建示例如下:
dict={“a”:”apple”, “b”:”banana”, “g”:”grage”, “o”:”orange”}
dict={“a”:”apple”, “b”:”banana”, “g”:”grage”, “o”:”orange”}
4 序列:序列是具有索引和切片能力的集合。元组、列表和字符串都属于序列。
【函数相关】
1 python程序由包(package)、模块(module)和函数组成。包是由一系列模块组成的集合。模块是处理某一类问题的函数和类的集合。
2 包就是一个完成特定任务的工具箱。
3 包必须含有一个__init__.py文件,它用于标识当前文件夹是一个包。
4 python的程序是由一个个模块组成的。模块把一组相关的函数或代码组织到一个文件中,一个文件即是一个模块。模块由代码、函数和类组成。导入模块使用import语句。
5 包的作用是实现程序的重用。
6 函数是一段可以重复多次调用的代码,函数定义示例如下:
def arithmetic(x,y,operator): result={ “+”:x+y, “-“:x-y, “*”:x*y, “/”:x/y }
def arithmetic(x,y,operator):
“+”:x+y,
“-“:x-y,
“*”:x*y,
7 函数返回值可以用return来控制。
【字符串相关】
1 格式化输出:
format=”%s%d” % (str1,num) print format
format=”%s%d” % (str1,num)
print format
2 用+进行字符串的合并:
str1=”hello” str2=”world” result=str1+str2
str1=”hello”
str2=”world”
result=str1+str2
3 字符串截取可以通过索引/切片,也可以通过split函数。
4 通过切片截取字符串:
word=”world” print word[0:3]
word=”world”
print word[0:3]
5 python使用==和!=来进行字符串比较。如果比较的两个变量的类型不相同,那么结果必然为不同。
【文件处理】
1 简单处理文件:
context=”hello,world” f=file(“hello.txt”,’w’) f.write(context); f.close()
context=”hello,world”
f=file(“hello.txt”,’w’)
f.write(context);
2 读取文件可以使用readline()函数、readlines()函数和read函数。
3 写入文件可以使用write()、writelines()函数
【对象和类】
1 python用class保留字来定义一个类,类名的首字符要大写。当程序员需要创建的类型不能用简单类型来表示时,就需要定义类,然后利用定义的类创建对象。定义类示例:
class Fruit: def grow(self): print “Fruit grow”
class Fruit:
def grow(self):
print “Fruit grow”
2 当一个对象被创建后,包含了三方面的特性,即对象的句柄、属性和方法。创建对象的方法:
fruit = Fruit() fruit.grow()
fruit = Fruit()
fruit.grow()
3 python没有保护类型的修饰符
4 类的方法也分为公有方法和私有方法。私有函数不能被该类之外的函数调用,私有的方法也不能被外部的类或函数调用。
5 python使用函数”staticmethod()“或”@ staticmethod“指令的方法把普通的函数转换为静态方法。静态方法相当于全局函数。
6 python的构造函数名为__init__,析构函数名为__del__
7 继承的使用方法:
class Apple(Fruit): def …
class Apple(Fruit):
【连接mysql】
1 用MySQLdb模块操作MySQL数据库非常方便。示例代码如下:
import os, sys import MySQLdb try: conn MySQLdb.connect(host=’localhost’,user=’root’,passwd=’’,db=’address’
except Exception,e: print e sys.exit() cursor=conn.cursor() sql=’insert into address(name, address) values(%s, %s)’ value=((“zhangsan”,”haidian”),(“lisi”,”haidian”)) try cursor.executemany(sql,values) except Exception, e: print e sql=”select * from address” cursor.execute(sql) data=cursor.fetchall() if data for x in data: print x[0],x[1]
cursor.close() conn.close()
import os, sys
import MySQLdb
conn MySQLdb.connect(host=’localhost’,user=’root’,passwd=’’,db=’address’
except Exception,e:
sys.exit()
cursor=conn.cursor()
sql=’insert into address(name, address) values(%s, %s)’
value=((“zhangsan”,”haidian”),(“lisi”,”haidian”))
cursor.executemany(sql,values)
except Exception, e:
sql=”select * from address”
cursor.execute(sql)
data=cursor.fetchall()
for x in data:
print x[0],x[1]
cursor.close()
conn.close()
OK,that's all&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1577919次
积分:20041
积分:20041
排名:第297名
原创:438篇
转载:355篇
评论:258条
(1)(3)(8)(4)(12)(1)(16)(12)(18)(5)(1)(1)(5)(4)(1)(1)(2)(1)(10)(16)(5)(6)(9)(6)(11)(5)(16)(28)(17)(5)(3)(14)(18)(23)(9)(13)(25)(12)(22)(20)(29)(13)(11)(5)(11)(22)(7)(23)(18)(13)(12)(21)(18)(31)(18)(3)(3)(15)(7)(16)(18)(6)(2)(23)(7)(7)(19)(5)(3)(13)(10)(2)&&&&python实现seq文件归档
python实现seq文件归档
使用python实现的seq文件归档,使用os模块和re正则表达式来完成
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
开发技术下载排行使用Python读写及压缩和解压缩文件的示例
(window.slotbydup=window.slotbydup || []).push({
id: '2611110',
container: s,
size: '240,200',
display: 'inlay-fix'
您当前位置: &
[ 所属分类
作者 红领巾 ]
读写文件首先看一个例子:f = open('thefile.txt','w') #以写方式打开,try: f.write('wokao')finally: f.close()文件的打开方式:f = open(‘文件','mode')‘r':只读(缺省。如果文件不存在,则抛出错误)‘w':只写(如果文件不存在,则自动创建文件),此时无法调用f.read()方法,且当调用f.write()时,将清空文件原有内容‘a':附加到文件末尾‘r+':读写如果需要以二进制方式打开文件,需要在mode后面加上字符”b”,比如”rb”,”wb”等文件的属性:f.closed #标记文件是否已经关闭,由close()改写f.encoding #文件编码f.mode #打开模式f.name #文件名f.newlines #文件中用到的换行模式,是一个tuplef.softspace #boolean型,一般为0,据说用于print文件的读写方法:f.read([size]) #size为读取的长度,以byte为单位f.readline([size]) #读一行,如果定义了size,有可能返回的只是一行的一部分f.readlines([size]) #把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分f.write(str) #把str写到文件中,write()并不会在str后加上一个换行符f.writelines(seq) #把seq的内容全部写到文件中。这个函数也只是忠实地写入,不会在每行后面加上任何东西f.close() #关闭文件f.flush() #把缓冲区的内容写入硬盘f.fileno() #返回一个长整型的”文件标签“f.isatty() #文件是否是一个终端设备文件(unix系统中的)f.tell() #返回文件操作标记的当前位置,以文件的开头为原点f.next() #返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的f.seek(offset[,from]) #将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了from参数就不一定了,from可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。f.truncate([size]) #把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。在读取一个文件时,会记住其在文件中的位置,如果第二次仍需要从头读取,则需要调用f.seek(0)重新从头开始读取。一些例子:&&& f = open('hi.txt','w')&&& f.closedFalse&&& f.mode'w'&&& f.name'hi.txt'&&& f.encoding压缩和解压缩文件(zip/unzip)1,单个文件压缩成zip文件#!/usr/bin/pythonimport zipfilef = zipfile.ZipFile('archive.zip','w',zipfile.ZIP_DEFLATED)f.write('1.py')f.write('/root/install.log')f.close()仔细观察压缩以后的archive.zip,里面有一个1.py和一个root的目录,root目录下有一个install.logZIP_DEFLATED是压缩标志,如果使用它需要编译了zlib模块,如果仅仅是打包而不压缩的话,可以改为zipfile.ZIP_STORED2,把zip文件解压缩#!/usr/bin/pythonimport zipfilezfile = zipfile.ZipFile('archive.zip','r')for filename in zfile.namelist(): data = zfile.read(filename) file = open(filename, 'w+b') file.write(data) file.close()如果archive.zip里有目录,则在当前目录下也应该存在对应的目录,否则会报错。3,把整个文件夹压缩#!/usr/bin/pythonimport zipfileimport osf = zipfile.ZipFile('archive.zip','w',zipfile.ZIP_DEFLATED)startdir = "c:\\\\mydirectory"for dirpath, dirnames, filenames in os.walk(startdir): for filename in filenames: f.write(os.path.join(dirpath,filename))f.close()如果出现:Compression requires the (missing) zlib module解决方法:yum install zlib zlib-devel,然后重新编译安装python
本文开发(python)相关术语:python基础教程 python多线程 web开发工程师 软件开发工程师 软件开发流程
转载请注明本文标题:本站链接:
分享请点击:
1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
这个世界是不公平,但还没有不公平到让有能力的人无法出头的地步。
手机客户端
,专注代码审计及安全周边编程,转载请注明出处:http://www.codesec.net
转载文章如有侵权,请邮件 admin[at]codesec.net

我要回帖

更多关于 路由器上网设置 的文章

 

随机推荐