img
xml_to csv.py

读取VOC2007数据集中的xml文件对应的信息,提取xy坐标类别等信息,并将其转换为一个汇总的csv文件,便于查看

img
matlab代码转换为python代码

SMOP 是小型Matlab和八度到Python编译器。 SMOP将matlab翻译成python。尽管matlab和数字python之间有明显的相似之处,但在现实生活中有足够的差异使手工翻译不可行。 SMOP生成人类可读的蟒蛇,这似乎也比八度快。速度有多快?表1显示了“移动家具”的计时结果。似乎对于该程序,转换为python导致加速大约两倍,并且 使用cython 将SMOP运行时库编译runtime.py为C 实现了额外的两倍加速。这个伪基准测量标量性能,而我的解释是标量计算对八度组不太感兴趣。 使用方法: $ cd smop / smop $ python main.py solver.m $ python solver.py

img
C#代码到Python代码的自动转换工具

C#代码到Python代码的自动转换工具,绿色版仅3M。 工具是我自己利用SharpDevelop 3.1的代码转换功能,二次打包后的简易代码转换工具。 SharpDevelop 3.1 now supports converting C# and VB.NET code to IronPython. It can convert a single file or an entire project. The code to convert between these languages is still under development and has some limitations.

img
MiniTool.Partition.Wizard.Server.Edition.8.1.1+...

Partition Wizard Home Edition是一款功能强大的硬盘分区管理软件。让你享受丰富的功能:调整和移动分区,复制分区,复制磁盘保护数据,创建、删除和格式化分区,转换和探索分区,隐藏和取消隐藏分区等。 还支持在Windows 系统下把U盘或磁盘分区为 Linux Ext4,Windows 格式化 Ext2/Ext3/Ext4,这是很好的选择。 MiniTool Partition Server 8 key(注册码) FKY88P43AYM5AWACAYASKMYWVXSSYUKU XKPX5X4CWY3SMUKVPSS8MYWV8PWVC8KU KKSSV54SAY3XMXPA5MMPWP5FYX5FVPKY KK3KACP8CYFWC5SVP5Y3A8SSCX3PK8K8 XK33YF48PY8WUW3SY4C8Y5MC3PK5UVKK XK33YF48PY8WUW3SY4C8Y5MC3PK5UVKK 3KXCPY4W5YWFSKXSYAAPXSXKKX3VSSKY WKVVPP48AYKCXPMVSMKSAP4FAPFMYWKK MiniTool Partition Ptogrddionsl 8 key(注册码) X8MSUV5US5UYWWUXPUV88WFM8UYKX58V U854WA8W555YAYA5CPK4W4VA4UUY388S W844WA5CK58VFSPCP34PC8585UUSF88X K8MV4K84853588M348SFKSM5CW4MSU8F 384SW48CM5SK558CFXV88AVY8WWFF48W MiniTool Partition Enterprise 8 key(注册码) YP84CMMX3W55MMFKPUXCYF4FF4AAY44X VPYA8XKKAWPFY58Y8UFY4K43YC8PAF4A AP583XKPAWXXF54K8FM4VY4WPC5VYF4F APYSVFK8KW8WP8KYAW8C3XC4WC3PSV4F SPW8AYKSFWKXMFXWKW5AMUYWP4UMPC4S MiniTool Partition Technician 8 key(注册码) 8P3WV8YY5SYVW8VFSVMV58WCSAVMMVWW XP5X3PY4CSYSWMXAXMACACAAAM48MAWS 8P3F34YF3SVX438FUVK3CMSFYAMMVAWF KPY53CU5KSC5CMM834VSPWMCPAUXASWC 8PPXK5YFKS34FWFUK44VMKWYSASFXAWF

img
维宏Ncstudio V9.0

V9.1.0.0 1. 增加了“加载轨迹”功能,可以自动加载轨迹和手动加载轨迹; 2. public.dat出现错误时可以提示具体的行号; 3. 优化了解析器的效率,大大提高了语法解析的效率问题,大文件处理能力显著提高; M901, G906指令的改进:使用PLC地址,并使用了新的关键字"PLC"和"LEVEL",PLC关键字支持[PLC地址]和等号表达式, 例如: M901 PLC[10006] LEVEL1 G906 PLC[20006] LEVEL0 P1000 ; 4. G904指令的改进:使用PLC地址,PX, PY, PZ关键字支持PLC地址和等号表达式; 5. 修改了单段执行时一段完成后不停止的问题; 6. 修改了在使用梯形和S型算法时回工件原点不准确的问题; 7. 增加了速度平稳功能: 1. 部分地去掉了速度尖角,使机床在运行过程中不频繁地加速减速,减少振动; 2. 新增了参数:“平稳加工有效”,该参数默认为否,如打开,圆弧限速自动有效; 8. 解决了仿真时候导致微小偏差的错误。(bug位置:CKernelTimer::ReadNccmd()); 9. 解决了DXF文件在加工深度为零时无加工动作的问题(切割时有此问题); 10. 增加了G09准停指令(需要硬件支持)的支持; 11. Eng文件中不存在多把刀的信息时不出现换刀提示; 增加了当前刀具信息每条路径反复提示信息; 12. 增加了参数按照子类分组显示的功能; 13. 解决了圆弧半径编程时半径值不能自动从英制转换到公制的问题; 14. 解决了对刀、回机械原点时可能出现的“设定速度”不正确的情况; 15. 改进了文件位置的更新机制,避免了以前M3,M30等指令执行时文件位置不正确的问题; 16. 增加了G09的实现代码; 17. 改进了界面键盘方案,支持全屏幕单键访问。 V9.2.0.0 1. 修正了装载dxf格式文件轨迹的时候不成功的问题; V9.3.0.0 1. 改正了水切割菜单栏的“模式”和“操作”的快捷键都是“O”的错误; 2. 改正了水切割参数备份功能备份“水切割参数”有误,恢复后的参数并不是保存前设置的参数; 3. 改正了Z轴限位不报警的错误; 4. 当手轮处于OFF状态时,软件自动退出手轮方式;当手轮有轴选择改变时,手轮可以工作; 5. 改正了软件注册时间到,只要电脑不关机,控制系统还是能使用的问题; 6. 去掉内建程序编辑器。 V9.4.0.0 1. 每个输入端口都有下列属性:使能、滤波、采样时间; 2. 添加输入口采样界面代码;可以通过该界面来设置每个端口的属性。

img
转化小程序

转化小程序 m脚本使用

img
Python-code2flow把你的Python和JavaScript代码转换为流程图

code2flow:把你的 Python 和 JavaScript 代码转换为流程图

img
matlab代码转换为python代码

SMOP 是小型Matlab和八度到Python编译器。 SMOP将matlab翻译成python。尽管matlab和数字python之间有明显的相似之处,但在现实生活中有足够的差异使手工翻译不可行。

img
Linux 中 ^M 转换

linux 下文件有^M, 如何转换,是因为mac,windows和linux 下的换行符不一样

img
QT文件转换成Python的自动化工具(*.ui转换成*.py)

QT文件转换成Python的自动化工具(*.ui转换成*.py) 对应python2.7版本 安装目录要默认,如果不是默认就需要自己改代码。

img
catiav5取法矢软件V1.2

Catia v5取法矢数据软件V1.2使用说明 1.产品综述 由法国Dassault系统公司于七十年代开发CATIA软件系统, 是世界最著名的CAD/CAM系统软件之一,CATIA在过去的二十年中一直保持着强劲的发展趋势。CATIA在汽车及航空航天领域的统治地位不断增强。同时,CATIA也大量地进入了其他行业,如机车制造、通用机械、家电、船舶等。 CATIA软件开放式的数据结构,使得客户很容易自行开发对CATIA特定的功能需求。CATIA的客户参与开发和测试的模式也是非常有益于客户的。CATIA的许多模块、特别是专用模块,就是他们与象波音、达索宇航、宝马、本田等用户一起,为满足客户的专门工程要求而开发并集成到CATIA系统中来的,这些模块是客户经验的宝贵结晶。 CATIA开放式的数据结构,也吸引了一批CAD/CAM的OEM厂商参与开发CATIA的功能,并提供了商品化的功能模块集成到CATIA。 CATIA从进入国内市场开始,实际上就遇到曲面数据提取、传递、以及与绘图仪、数控机床的后置处理接口等问题。Catia v5取法矢数据软件就是国内的这种具体应用需求的基础上,应用CATIA开放式的数据结构,在CATIA强大的曲面功能的基础上,结合客户实际需要,发展、综合提炼出来的功能。 2.产品简介 Catia v5取法矢是CATIA V5最常见的二次开发需求之一,但至今仍然没有一种使用简便能达到商用化的软件来完成此项任务。Catia v5取法矢数据软件是分析了此类需求,归纳出基本要求。并着重设计了十分友好的、简便的操作界面。使之功能强大,简单易用。 3.CATIAv5取法矢软件的应用领域 u 弯边斜角值计算:主要用于国内飞机制造(如模线、样板制造),这是比较专业的应用。 u 提供数控测量机检验数据:将原始曲面数据信息中的型值点P{Px,Py,pz}和法矢量N{Nx,Ny,Nz},提供给数控测量机,直接用于对数控加工零件的校验。 u 曲面质量校验:曲面数据信息中的型值点P{Px,Py,pz}和法矢量N{Nx,Ny,Nz},作为异构CAD/CAM系统之间数据交换时的曲面质量检验依据。典型的例子,就是国内麦道干线飞机的转包生产中,麦道提供的外形曲面是由UG系统转换到CATIA的曲面,同时给出对应曲面上的一批型值点P{Px,Py,pz}和法矢量N{Nx,Ny,Nz}值,作为对CATIA曲面质量的校验依据。 u 异构CAD/CAM系统数据交换:曲面数据信息中的型值点P{Px,Py,pz}和法矢量N{Nx,Ny,Nz},可作为原始数据提供给异构CAD/CAM系统的曲面构型数据,并作为校验依据。 4. CATIAv5取法矢软件运行环境 Ø CATIA V5 R16-R18 FOR WINDOWS(特殊版本需定制), CATIAv5取法矢软件需5M空间。 Ø 微软的办公软件:EXCEL。 5.使用说明 Ø 安装 u 首先确认CATIA V5的版本是否为R16—R18。 u 点击运行SETUP u 安装完成后会自动运行程序。并显示授权信息。 u 此时若CATIA已开启并打开.catpart文件,可直接使用。若CATIA未启动软件会自行启动CATIA,并使用“打开*.CATPART” 按钮打开所需之文件。同时启动EXCEL作为数据输出。 若未购买软件。使用的为DEMO版,DEMO版除部分数据被**取代外与正式版完全一样。(X,DZ未加密)可在CATIA中测量相关数据比对剩余数据测试精度。 u 如果零件有用户坐标系,可选择需要的用户坐标系。取得的数据为相应坐标系下的数据。无用户坐标系为绝对坐标系。 u 建议进行一下CATIA的更新操作,确保CATIA无更新错误。点击“开始”。按钮会变红并改为“结束”。此时可开始数据采集工作。 1.曲面点坐标与法矢数据的采集: l 在CATIA中点击选取曲面,软件会在选取处生成法矢,并弹出对话框询向是否反向。点击“确定”后取得数据。曲面生成“*”标志的点,指示已取的数据。 l 点击“结束”结束数据采集。 l 取完数据后。请在EXCEL中保存数据。关闭软件同时会自动关闭EXCEL,若未在EXCEL中保存数据,数据会丢失。 2.孔位数据的采集: l 先作好孔的轴线。轴线与上下孔齐平,方向:上表面到下表面。 l 约定的孔位数据为轴线长度>5mm:取轴线上下端点坐标,轴线长度<=5mm取轴线中点坐标。和轴线法矢数据。 l 选取轴线,可按CTRL多选。按F10键一次取得。 6.常见问题 u 点击曲面取不了数据,可能: 1. CATIA版本不对。软件支持R16-R18。特殊版本需要定制。 2. 选择的特征非曲面或曲面有破洞,褶皱。 3. CATIA未进行服务注册。在你的CATIA安装目录”…\intel_a\code\bin”下找到CNEXT。在命今窗口下运行CNEXT –REGSERVER. 7.购买: 点击购买。会有你的硬件指纹等信息。 将您的联系方式、用户名和硬件指纹提供给销售商,以便合法获得软件使用权。 销售价格:一次购买 单个许可证: ¥1780 2个许可证: ¥3300 5个许可证: ¥5000 10个许可证:¥7500 每个许可证仅供单机使用 联系电子邮件:ftn777@hotmail.com , ftn@tom.com ,ftn@xac.com.cn 手机:13474114565 汇款账号:中国邮政储蓄绿卡6221887910019047251 冯潼能 二〇〇九年五月 Copyright (c) 2003-2008 革命与进化软件实验室 REVOLUTION AND EVOLUTION SOFTWARE LAB. All right reserved

img
Python基础教程(第2版).[挪]Magnus Lie Hetland(带...

这是 第2版修订版 之前的版本 原书名:Beginning Python: From Novice to Professional, Second Edition 原出版社: Apress 作者:(挪)Magnus Lie Hetland 译者:司维 曾军崴 谭颖华 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787115230270 出版日期:2010 年7月 开本:16开 页码:471 版次:2-1 本书包括Python程序设计的方方面面,首先从Python的安装开始,随后介绍了Python的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句。然后循序渐进地介绍了一些相对高级的主题,包括抽象、异常、魔法方法、属性、迭代器。此后探讨了如何将Python与数据库、网络、C语言等工具结合使用,从而发挥出Python的强大功能,同时介绍了Python程序测试、打包、发布等知识。最后,作者结合前面讲述的内容,按照实际项目开发的步骤向读者介绍了几个具有实际意义的Python项目的开发过程。 本书内容涉及的范围较广,既能为初学者夯实基础,又能帮助程序员提升技能,适合各个层次的Python开发人员阅读参考。 第1章 基础知识 1 1.1 安装Python 1 1.1.1 Windows 1 1.1.2 Linux和UNIX 3 1.1.3 苹果机(Macintosh) 4 1.1.4 其他发布版 5 1.1.5 时常关注,保持更新 6 1.2 交互式解释器 6 1.3 算法是什么 7 1.4 数字和表达式 8 1.4.1 长整型数 9 1.4.2 十六进制和八进制 10 1.5 变量 10 1.6 语句 11 1.7 获取用户输入 12 1.8 函数 13 1.9 模块 14 1.9.1 cmath和复数 14 1.9.2 回到__future__ 15 1.10 保存并执行程序 15 1.10.1 通过命令提示符运行Python脚本 16 1.10.2 让脚本像普通程序一样运行 17 1.10.3 注释 18 1.11 字符串 19 1.11.1 单引号字符串和转义引号 19 1.11.2 拼接字符串 20 1.11.3 字符串表示,str和repr 20 1.11.4 input和raw_input的比较 21 1.11.5 长字符串、原始字符串和Unicode 22 1.12 小结 24 1.12.1 本章的新函数 25 1.12.2 接下来学什么 25 第2章 列表和元组 26 2.1 序列概览 26 2.2 通用序列操作 27 2.2.1 索引 27 2.2.2 分片 29 2.2.3 序列相加 31 2.2.4 乘法 31 2.2.5 成员资格 32 2.2.6 长度、最小值和最大值 33 2.3 列表:Python的“苦力” 34 2.3.1 list函数 34 2.3.2 基本的列表操作 34 2.3.3 列表方法 36 2.4 元组:不可变序列 41 2.4.1 tuple函数 42 2.4.2 基本元组操作 42 2.4.3 那么,意义何在 42 2.5 小结 43 2.5.1 本章的新函数 43 2.5.2 接下来学什么 43 第3章 使用字符串 44 3.1 基本字符串操作 44 3.2 字符串格式化:精简版 44 3.3 字符串格式化:完整版 46 3.3.1 简单转换 47 3.3.2 字段宽度和精度 47 3.3.3 符号、对齐和0填充 47 3.4 字符串方法 49 3.4.1 find 49 3.4.2 join 50 3.4.3 lower 51 3.4.4 replace 51 3.4.5 split 52 3.4.6 strip 52 3.4.7 translate 52 3.5 小结 54 3.5.1 本章的新函数 54 3.5.2 接下来学什么 54 第4章 字典:当索引不好用时 55 4.1 字典的使用 55 4.2 创建和使用字典 56 4.2.1 dict函数 56 4.2.2 基本字典操作 57 4.2.3 字典的格式化字符串 58 4.2.4 字典方法 59 4.3 小结 64 4.3.1 本章的新函数 64 4.3.2 接下来学什么 64 第5章 条件、循环和其他语句 65 5.1 print和import的更多信息 65 5.1.1 使用逗号输出 65 5.1.2 把某件事作为另一件事导入 66 5.2 赋值魔法 67 5.2.1 序列解包 67 5.2.2 链式赋值 68 5.2.3 增量赋值 68 5.3 语句块:缩排的乐趣 69 5.4 条件和条件语句 69 5.4.1 这就是布尔变量的作用 69 5.4.2 条件执行和 if 语句 70 5.4.3 else子句 71 5.4.4 elif子句 71 5.4.5 嵌套代码块 71 5.4.6 更复杂的条件 72 5.4.7 断言 76 5.5 循环 76 5.5.1 while循环 77 5.5.2 for循环 77 5.5.3 循环遍历字典元素 78 5.5.4 一些迭代工具 79 5.5.5 跳出循环 80 5.5.6 循环中的else子句 82 5.6 列表推导式——轻量级循环 82 5.7 三人行 83 5.7.1 什么都没发生 84 5.7.2 使用del删除 84 5.7.3 使用exec和eval执行和求值字符串 85 5.8 小结 87 5.8.1 本章的新函数 88 5.8.2 接下来学什么 88 第6章 抽象 89 6.1 懒惰即美德 89 6.2 抽象和结构 90 6.3 创建函数 90 6.3.1 记录函数 91 6.3.2 并非真正函数的函数 92 6.4 参数魔法 92 6.4.1 值从哪里来 93 6.4.2 我能改变参数吗 93 6.4.3 关键字参数和默认值 97 6.4.4 收集参数 99 6.4.5 反转过程 101 6.4.6 练习使用参数 102 6.5 作用域 103 6.6 递归 105 6.6.1 两个经典:阶乘和幂 106 6.6.2 另外一个经典:二元查找 107 6.7 小结 110 6.7.1 本章的新函数 110 6.7.2 接下来学什么 111 第7章 更加抽象 112 7.1 对象的魔力 112 7.1.1 多态 113 7.1.2 封装 115 7.1.3 继承 117 7.2 类和类型 117 7.2.1 类到底是什么 117 7.2.2 创建自己的类 118 7.2.3 特性、函数和方法 119 7.2.4 类的命名空间 121 7.2.5 指定超类 122 7.2.6 调查继承 122 7.2.7 多个超类 123 7.2.8 接口和内省 124 7.3 一些关于面向对象设计的思考 125 7.4 简明总结 125 7.4.1 本章的新函数 126 7.4.2 接下来学什么 126 第8章 异常 127 8.1 什么是异常 127 8.2 按自己的方式出错 127 8.2.1 raise语句 127 8.2.2 自定义异常类 128 8.3 捕捉异常 129 8.4 不止一个except子句 130 8.5 用一个块捕捉两个异常 131 8.6 捕捉对象 131 8.7 真正的全捕捉 131 8.8 万事大吉 132 8.9 最后…… 134 8.10 异常和函数 134 8.11 异常之禅 135 8.12 小结 136 8.12.1 本章的新函数 137 8.12.2 接下来学什么 137 第9章 魔法方法、属性和迭代器 138 9.1 准备工作 138 9.2 构造方法 139 9.2.1 重写一般方法和特殊的构造方法 140 9.2.2 调用未绑定的超类构造方法 141 9.2.3 使用super函数 142 9.3 成员访问 143 9.3.1 基本的序列和映射规则 144 9.3.2 子类化列表,字典和字符串 146 9.4 更多魔力 147 9.5 属性 147 9.5.1 property函数 148 9.5.2 静态方法和类成员方法 149 9.5.3 __getattr__、__setattr__和它的朋友们 150 9.6 迭代器 151 9.6.1 迭代器规则 151 9.6.2 从迭代器得到序列 153 9.7 生成器 153 9.7.1 创建生成器 153 9.7.2 递归生成器 154 9.7.3 通用生成器 156 9.7.4 生成器方法 156 9.7.5 模拟生成器 157 9.8 八皇后问题 158 9.8.1 生成器和回溯 158 9.8.2 问题 159 9.8.3 状态表示 159 9.8.4 寻找冲突 159 9.8.5 基本情况 160 9.8.6 需要递归的情况 161 9.8.7 打包 162 9.9 小结 163 9.9.1 本章的新函数 164 9.9.2 接下来学什么 164 第10章 充电时刻 165 10.1 模块 165 10.1.1 模块是程序 165 10.1.2 模块用于定义 167 10.1.3 让你的模块可用 169 10.1.4 包 171 10.2 探究模块 172 10.2.1 模块中有什么 172 10.2.2 用help获取帮助 173 10.2.3 文档 174 10.2.4 使用源代码 174 10.3 标准库:一些最爱 175 10.3.1 sys 175 10.3.2 os 176 10.3.3 fileinput 178 10.3.4 集合、堆和双端队列 180 10.3.5 time 184 10.3.6 random 185 10.3.7 shelve 188 10.3.8 re 191 10.3.9 其他有趣的标准模块 204 10.4 小结 205 10.4.1 本章的新函数 205 10.4.2 接下来学什么 206 第11章 文件和素材 207 11.1 打开文件 207 11.1.1 文件模式 207 11.1.2 缓冲 208 11.2 基本文件方法 209 11.2.1 读和写 209 11.2.2 管式输出 210 11.2.3 读写行 211 11.2.4 关闭文件 211 11.2.5 使用基本文件方法 213 11.3 对文件内容进行迭代 214 11.3.1 按字节处理 214 11.3.2 按行操作 215 11.3.3 读取所有内容 215 11.3.4 使用fileinput实现懒惰行迭代 216 11.3.5 文件迭代器 216 11.4 小结 217 11.4.1 本章的新函数 218 11.4.2 接下来学什么 218 第12章 图形用户界面 219 12.1 丰富的平台 219 12.2 下载和安装wxPython 220 12.3 创建示例GUI应用程序 221 12.3.1 开始 221 12.3.2 窗口和组件 222 12.3.3 标签、标题和位置 223 12.3.4 更智能的布局 225 12.3.5 事件处理 226 12.3.6 完成了的程序 226 12.4 但是我宁愿用…… 228 12.4.1 使用Tkinter 229 12.4.2 使用Jython和Swing 229 12.4.3 使用其他开发包 230 12.5 小结 230 第13章 数据库支持 231 13.1 Python数据库API 232 13.1.1 全局变量 232 13.1.2 异常 233 13.1.3 连接和游标 233 13.1.4 类型 235 13.2 SQLite和PySQLite 235 13.2.1 入门 236 13.2.2 数据库应用程序示例 237 13.3 小结 239 13.3.1 本章的新函数 240 13.3.2 接下来学什么 240 第14章 网络编程 241 14.1 少数几个网络设计模块 241 14.1.1 socket模块 242 14.1.2 urllib和urllib2模块 243 14.1.3 其他模块 245 14.2 SocketServer和它的朋友们 246 14.3 多连接 246 14.3.1 使用SocketServer进行分叉和线程处理 248 14.3.2 带有select和poll的异步I/O 248 14.4 Twisted 251 14.4.1 下载并安装Twisted 251 14.4.2 编写Twisted服务器 251 14.5 小结 253 14.5.1 本章的新函数 254 14.5.2 接下来学什么 254 第15章 Python和万维网 255 15.1 屏幕抓取 255 15.1.1 Tidy和XHTML解析 256 15.1.2 Beautiful Soup 260 15.2 使用CGI创建动态网页 261 15.2.1 第一步:准备网络服务器 261 15.2.2 第二步:加入Pound Bang行 261 15.2.3 第三步:设置文件许可 262 15.2.4 CGI安全风险 262 15.2.5 简单的CGI脚本 263 15.2.6 使用cgitb调试 263 15.2.7 使用cgi模块 264 15.2.8 简单的表单 265 15.3 更进一步:mod_python 267 15.3.1 安装mod_python 267 15.3.2 CGI处理程序 269 15.3.3 PSP 270 15.3.4 发布 271 15.4 网络应用程序框架 273 15.5 Web服务:正确分析 274 15.5.1 RSS和相关内容 274 15.5.2 使用XML-RPC进行远程过程调用 275 15.5.3 SOAP 275 15.6 小结 276 15.6.1 本章的新函数 276 15.6.2 接下来学什么 276 第16章 测试 277 16.1 先测试,后编码 277 16.1.1 精确的需求说明 278 16.1.2 为改变而计划 279 16.1.3 测试的4步 279 16.2 测试工具 280 16.2.1 doctest 280 16.2.2 unittest 282 16.3 单元测试以外的内容 285 16.3.1 使用PyChecker和PyLint检查源代码 285 16.3.2 分析 288 16.4 小结 289 16.4.1 本章的新函数 290 16.4.2 接下来学什么 290 第17章 扩展Python 291 17.1 考虑哪个更重要 291 17.2 非常简单的途径:Jython和IronPython 292 17.3 编写C语言扩展 294 17.3.1 SWIG 296 17.3.2 自己研究 299 17.4 小结 303 17.4.1 本章的新函数 304 17.4.2 接下来学什么 304 第18章 程序打包 305 18.1 Distutils基础 305 18.2 打包 307 18.2.1 建立存档文件 307 18.2.2 创建Windows安装程序或RPM包 308 18.3 编译扩展 309 18.4 使用py2exe创建可执行程序 310 18.5 小结 311 18.5.1 本章的新函数 311 18.5.2 接下来学什么 311 第19章 好玩的编程 312 19.1 为什么要好玩 312 19.2 程序设计的柔术 312 19.3 原型设计 313 19.4 配置 314 19.4.1 提取常量 314 19.4.2 配置文件 315 19.5 日志记录 317 19.6 如果还没烦 318 19.7 如果还想学 318 19.8 小结 319 第20章 项目1:即时标记 321 20.1 问题是什么 321 20.2 有用的工具 322 20.3 准备工作 322 20.4 初次实现 323 20.4.1 找出文本块 323 20.4.2 添加一些标记 324 20.5 再次实现 325 20.5.1 处理程序 326 20.5.2 处理程序的超类 326 20.5.3 规则 328 20.5.4 规则的超类 329 20.5.5 过滤器 329 20.5.6 语法分析器 329 20.5.7 构造规则和过滤器 330 20.5.8 整合 333 20.6 进一步探索 337 第21章 项目2:画幅好画 338 21.1 问题 338 21.2 有用的工具 339 21.3 准备工作 339 21.4 初次实现 340 21.4.1 用ReportLab画图 340 21.4.2 构造折线 341 21.4.3 编写原型 342 21.5 再次实现 343 21.5.1 获取数据 343 21.5.2 使用LinePlot类 344 21.6 进一步探索 345 第22章 项目3:万能的XML 346 22.1 问题 346 22.2 有用的工具 347 22.3 准备工作 348 22.4 初次实现 349 22.4.1 创建简单的内容处理程序 349 22.4.2 创建HTML页面 351 22.5 再次实现 353 22.5.1 调度程序的混入类 353 22.5.2 实现首部、页脚和默认的处理程序 355 22.5.3 对目录的支持 355 22.5.4 事件处理程序 356 22.6 进一步探索 359 第23章 项目4:新闻聚合 360 23.1 问题 360 23.2 有用的工具 361 23.3 准备工作 361 23.4 初次实现 361 23.5 再次实现 364 23.6 进一步探索 370 第24章 项目5:虚拟茶话会 372 24.1 问题 372 24.2 有用的工具 372 24.3 准备工作 373 24.4 初次实现 374 24.4.1 ChatServer类 374 24.4.2 ChatSession类 375 24.4.3 整合 377 24.5 再次实现 378 24.5.1 基础命令解释 379 24.5.2 房间 379 24.5.3 登录和退出房间 380 24.5.4 主聊天室 380 24.5.5 新的服务器 381 24.6 进一步探索 385 第25章 项目6:使用CGI进行远程编辑 386 25.1 问题 386 25.2 有用的工具 386 25.3 准备工作 387 25.4 初次实现 387 25.5 再次实现 388 25.5.1 创建文件名表单 388 25.5.2 创建编辑器的脚本 389 25.5.3 编写保存脚本 390 25.5.4 运行编辑器 391 25.6 进一步探索 392 第26章 项目7:自定义电子公告板 394 26.1 问题 394 26.2 有用的工具 395 26.3 准备工作 395 26.4 初次实现 396 26.5 再次实现 399 26.5.1 编写Main脚本 400 26.5.2 编写View脚本 401 26.5.3 编写Edit脚本 402 26.5.4 编写Save脚本 404 26.5.5 尝试使用 405 26.6 进一步探索 406 第27章 项目8:使用XML-RPC进行文件共享 407 27.1 问题 407 27.2 有用的工具 408 27.3 准备工作 408 27.4 初次实现 409 27.4.1 实现一个简单的节点 409 27.4.2 尝试使用首次实现 414 27.5 再次实现 415 27.5.1 创建客户端界面 415 27.5.2 引发异常 416 27.5.3 验证文件名 417 27.5.4 尝试使用再次实现 420 27.6 进一步探索 421 第28章 项目9:文件共享2——GUI版本 422 28.1 问题 422 28.2 有用的工具 422 28.3 准备工作 422 28.4 初次实现 423 28.5 再次实现 425 28.6 进一步探索 428 第29章 项目10:DIY街机游戏 429 29.1 问题 429 29.2 有用的工具 430 29.2.1 pygame 430 29.2.2 pygame.locals 430 29.2.3 pygame.display 431 29.2.4 pygame.font 431 29.2.5 pygame.sprite 431 29.2.6 pygame.mouse 432 29.2.7 pygame.event 432 29.2.8 pygame.image 432 29.3 准备工作 432 29.4 初次实现 433 29.5 再次实现 436 29.6 进一步探索 443 附录A 简明版本 444 附录B Python参考手册 451 附录C 在线资源 462 附录D Python 3.0 465

img
WEB渗透测试数据库

PentestDB 1 介绍 本项目用于提供渗透测试的辅助工具、资源文件 1.1 辅助工具 提供轻量级的易扩展的工具,可以快速编写exploit、添加漏洞验证/扫描规则、添加指纹规则、爆破规则等;包含以下功能: Exploit系统。易扩展的exploit系统,能够使用API快速编写exploit,能够批量执行exploit 子域名爆破。爆破子域名,使用域传送、DNS爆破、GoogleHacking进行子域名爆破 C段扫描。C段扫描,支持生成html格式输出文件 服务端应用识别。识别CMS类型、Web服务器、操作系统、WEB中间件等 URI敏感资源爆破。爆破WEB敏感文件,整站备份、配置备份、敏感文件等 社工密码字典生成。根据社工信息生成密码爆破字典 Google Hacking。GoogleHacking,生成URL字典 编解码等功能。支持非常丰富的编解码方式,方便做payload编码 1.2 资源文件 各种渗透测试常用的资源文件,包括各种爆破字典、exploit、webshell、攻击payload等 2 安装 从这里下载最新版本,或使用命令 git clone https://github.com/alpha1e0/pentestdb.git clone到本地 PentestDB支持Windows/Linux/MacOS,需使用python 2.6.x 或 2.7.x运行 2.1 解决lxml依赖 项目中的脚本文件依赖于lxml linux系统一般默认安装lxml,如果没有可通过以下方式安装: pip install lxml apt-get install lxml yum install lxml windows可通过以下方式安装lxml: 到这里找到对应系统的安装包,下载到本地 安装安装包,pip install package.whl 2.2 解决nmap依赖 项目中的C段扫描依赖于nmap扫描器 到这里下载nmap相应版本 在windows下需要设置环境变量,让系统能够找到nmap.exe。 3 使用 3.1 常用脚本 项目中的python脚本提供用有用的渗透辅助功能,根目录下的pen.py为脚本入口,另外script目录下也有其他一些脚本。 3.1.1 Exploit系统 pen.py的exploit子命令提供了exploit模块相关操作,exploit模块是一个轻量级的exploit框架,可以编写各种web漏洞的exploit: 搜索exploit信息 增加、删除、修改exploit信息 执行某个exploit 搜索并批量执行exploit exploit保存在项目根目录下的exploit目录下 例如: # 列举、搜索、注册、更新、删除 pen.py exploit -l pen.py exploit -q appName:joomla pen.py exploit --register exploit pen.py exploit --update cms_joomla_3_4_session_object_injection.py pen.py exploit -d "Joomla 1.5~3.4 session对象注入漏洞exploit" pen.py exploit --detail "Joomla 1.5~3.4 session对象注入漏洞exploit" # 执行exploit pen.py exploit -e cms_joomla_3_4_session_object_injection.py -u http://127.0.0.1:1234 --attack pen.py exploit -s appName:joomla -u http://127.0.0.1:1234 --verify pen.py exploit -s appName:joomla -u @url.txt 注:有关exploit模块的详细信息请参考exploit/readme.md 3.1.2 服务端应用识别 pen.py的service子命令提供了服务端应用识别的功能,能够识别服务器信息,包括: 操作系统 web服务器 web中间件 CMS等 例如: pen.py service http://xxx.com # 开启CMS识别加强模式 pen.py service http://xxx.com --cms 3.1.3 社工密码字典生成 pen.py的password子命令提供了根据社工信息生成密码字典的功能,能够设置不同关键字生成密码字典 该模块可通过以下要素组合生成密码: 全名,--fullname,名字中各个字中间加空格,例如"lin zhi ling" 昵称,--nickname 英文名称,--englishname 伴侣名字,--partnername 生日,--birthday 手机号,--phone QQ号,--qq 公司名称,--company 域名,--domian 老密码,--oldpasswd 关键字,--keyword 关键数字,--keynumbers 例如: pen.py passwdgen --fullname "lin zhi ling" --birthday 1980-1-1 --phone 12344445555 --qq 34233888 -o password.txt 3.1.4 URI敏感文件爆破 pen.py的uribrute子命令提供了URI敏感文件爆破,URI爆破字典生成的功能 例如: # 生成web打包备份、敏感文件字典,后缀名使用jsp和jspx,自定义关键字xxx,指定输出结果dict.txt pen.py uribrute -t webbak,interestfile -e jspx,jsp --keyword "xxx" -o dict.txt # 爆破目标站点,使用safeurl bypass waf pen.py uribrute -b -u http://127.0.0.1/discuz/6.0/ --safeurl "http://127.0.0.1/discuz/6.0/" # 爆破url.txt中的所有站点,爆破敏感文件,自定义notfound页面关键字为“找不到页面” pen.py uribrute -b -u @urls.txt -t interestfile --notfound "找不到页面" 3.1.5 Google Hacking功能 pen.py的search子命令提供了Google Hacking的功能,目前支持以下搜索引擎: baidu bing google 例如: pen.py search "inurl:viewthread.php" -s 10 -o tmp.txt # --unique设定域名唯一,相同域名只记录一个搜索结果 pen.py search "inurl:viewthread.php" -s 10 --unique -o tmp.txt 3.1.6 子域名爆破 pen.py的domain子命令提供了子域名爆破功能: 该模块使用3种技术进行子域名爆破: 域传送漏洞检测、利用 DNS字典爆破 Google Hacking搜索 注:支持输出到html文件,使用*-o xxx.html*做为输出文件即可 例如: # 使用域传送技术、Google Hacking对aaa.com 进行子域名爆破 pen.py domamin aaa.com -t zg # 使用字典爆破子域名,自定义字典文件domain_large.txt,同时指定爆破顶级域名 pen.py domain aaa.com -t d --dict domain_large.txt --topdomian 3.1.7 C段扫描 pen.py的subnet子命令提供了C段扫描功能。 注:支持输出到html文件,使用*-o xxx.html*做为输出文件即可 例如: pen.py subnet test.com -o result.html 3.1.8 编码 pen.py的encode子命令提供了编码的功能 编码方式*-t/--type*支持: url url-all hex decimal unicode unicode-all md5 sha base64 base32 html html-all php-chr utf7 utf7-all 其中**-all编码会编码所有字符包括非特殊字符 非ASCII编码*-m/--method*支持: utf8 gbk gb2312 big5 utf16 utf7 等所有python支持的编码方式,具体请参考如下链接: python支持的编解码格式 例如: pen.py encode -t unicode "aaa=你好" pen.py encode -t url-all -m gbk "id=你好" pen.py encode -t md5 "aaaaaaaa" 3.1.9 解码 pen.py的decode子命令提供了解码的功能,并提供非ASCII编码编码推测功能 解码方式*-t/--type*支持: auto(默认) hex url unicode decimal base64 base32 html php-chr utf7 其中auto方式会自动检测url类型、hex类型的字符串并进行解码 非ASCII编码*-m/--method*支持: utf8 gbk gb2312 big5 utf16 utf7 等所有python支持的编码方式,具体请参考如下链接: python支持的编解码格式 例如: pen.py decode -t base64 5ZOI5ZOI pen.py decode -m utf8 aaa%E5%93%88%E5%93%88 pen.py encode -t hex "\x61\x61\xe5\x93\x88\xe5\x93\x88" # 推测编码 pen.py decode -d "\x61\x61\xe5\x93\x88\xe5\x93\x88" 3.1.10 文件处理功能 pen.py的file子命令提供了常用的文件操作,包括:文件查看、文件编码推断、文件类型转换、文件hash计算、文件图片隐藏(制作php图片木马) 使用*--list*查看支持的文件编码转换格式: utf-32le utf-32le-bom utf-32 utf-32-bom utf-32be utf-32be-bom utf-16be utf-16be-bom utf-8 utf-8-bom utf-16 utf-16-bom utf-16le utf-16le-bom gbk gb2312 big5 ... 例如: # 检测文件编码类型 pen.py file cmdb.jsp -d # 计算文件hash pen.py file cmdb.jsp --hash md5 # 以16进制方式查看文件 pen.py file cmdb.jsp@hex # 将utf-8编码的文件test.txt转换为gbk编码的gbk.txt pen.py file test.txt@utf8 -c gbk.txt@gbk # 文件转换,转换为utf-16-bom类型文件(jsp/aspx的utf-16-bom类型文件可绕过一些安全软件) pen.py file cmd.jsp -c dst.jsp@utf-16-bom # 制作图片木马,会生成caidao_hiddenin_aa.jpg pen.py file caidao.php --hidein aa.jpg 3.1.11 Mail账户验证/爆破 script/mail.py提供简单的Mail账户验证、爆破功能: 例如: # 验证/tmp/maillist.txt中的Mail账户 mail.py -c -a @/tmp/maillist.txt # 爆破邮箱 mail.py -b -u @mail.txt -p @pass.txt 3.1.12 字典维护 script/wordlist.py提供了字典文件维护的功能,包括: 将多个字典文件merge到数据库中 对每个字典项进行打分计算 按照评分高低导出字典文件 例如: # 按照评分高低从数据库password.db中导出字典文件pass.txt,长度为100 wordlist.py -d pass.txt ../user-password/password/password.db -s 100 # 将字典文件test.txt merge 到数据库password.db中,重复项分值+1 wordlist.py -l test.txt ../user-password/password/password.db 3.2 user-passwd字典 password目录包含密码字典文件 user目录包含用户名字典文件 3.3 dns字典 dns爆破字典 3.4 directory字典 web目录爆破字典,详见相关目录readme.md文件 3.5 attack-payload 各种攻击payload字典,详见相关目录readme.md文件 3.6 webshell webshell收集,详见相关目录readme.md文件 3.7 script 常用脚本 3.8 exploit 一些有用的exploit,详见相关目录readme.md文件 4 备注 项目中的字典等文件统一使用“/**”作为注释符,注释符在一行开头,且只能注释单行 本项目仅供学习交流,请勿用于未授权的渗透活动 如果发现软件bug或对该项目感兴趣可联系mailto:yan.shifm@foxmail.com

img
喜马拉雅下载文件重命名

PC版的喜马拉雅客户端下载的m4a文件,名称是一串数字,真实名称被保存到一个list.json,通过解析该文件,实现批量重命名下载的视听文件。 该脚本的主要功能是:把下载的文件重命名为“真实名称.mp3” 使用方法: 1.将喜马拉雅下载的文件打包上传到虚拟机上并解压 2.将该脚本ximalaya.py放置于同层文件夹 3.修改userid为您的实际ID, 4.运行脚本

img
Code2HTML语法高亮

code2html是一个Perl脚本,可以转换多种语言的源码到HTML代码,它的功能非常丰富,既可以单独使用,也可以当作CGI脚本来给网站使用。下面来看一下它的用法: code2html -h 此命令在终端打印code2html的命令格式和各个参数。code2html的命令格式如下: code2html [options] [input_file] [output_file] 下面是code2html常用的参数: input_file 要转换的源码文件的路径,如果源码文件在当前目录下,可以直接跟文件名。如果不加此参数或者使用减号”-”作占位符,code2html将出标准输入设备(通常为键盘)中获取源码。 output_file 转换源码后将HTML保存到的文件,如果不加此参数或者使用一个减号”-”做占位符,code2html将把转换结果输出到标准输出设备(通常为屏幕)中。 -l 设定要转换的源码文件是哪种语言,如果不加此参数,code2html将自动判断源码所属的语言。 -m 使用命令“code2html -m”可以在终端打印code2html所有支持的语言。 -n 使输出的HTML文档中包含行数。 -N 使输出的HTML文档中包含行数,并且行数序号包含指向当前行的超链接。 -t number 将文档中出现的任一Tab字符替换成number个空格。 该命令通常的用法可以是: code2html sample.java sample.html 上述命令将自动判断使用什么语言的语法的特点来格式化转换后的HTML文档。一般可以准确判断并转换。 code2html -l c sample.c sample.html 使用C语言的语法规范来格式化转换后的HTML代码。 code2html -l python -N sample.py sample.html 上述命令以python语言的语法规范来格式化转换后的HTML文档,同时为其加上都有指向自己的链接的行数。 code2html是一个功能比较强大的代码高亮转换工具,它的用法不止以上这么多。此外,它还可以当作CGI脚本在网站上运行,关于它的更详细的用法可以参看其官方文档。 http://www.palfrader.org/code2html/manual.html

img
从视频中分离前景目标的Python & Matlab代码

代码说明 执行顺序: (1)avi2img.m 将视频转化为单张图片 (2)mark_rect.py 将视频分成多个帧,在每一帧中将运动对象用矩形标注出来,并生成mask图,将mask图保存到“mas

img
栅格投影转换.py

本资源采用Python编写基于ARCGIS中arcpy库,数据数据要统一放在同一个文件夹中即可。本资源适合对Python有一定基础者使用。

img
批量转换pyqt5的ui和rc文件到py文件

使用qt designer生成的ui文件以及qrc文件,将ui文件与pyuic-tool放在同一文件夹下,运行pyuic-tool。pyrcc-tool同理,需要注意文件夹下应包含对应的资源文件夹

img
Python-pytorch2kerasPyTorch到Keras模型转换工具

pytorch2keras - PyTorch到Keras模型转换工具

img
图神经网络构建代码

# GPF ## 一、GPF(Graph Processing Flow):利用图神经网络处理问题的一般化流程 1、图节点预表示:利用NE框架,直接获得全图每个节点的Embedding; 2、正负样本采样:(1)单节点样本;(2)节点对样本; 3、抽取封闭子图:可做类化处理,建立一种通用图数据结构; 4、子图特征融合:预表示、节点特征、全局特征、边特征; 5、网络配置:可以是图输入、图输出的网络;也可以是图输入,分类/聚类结果输出的网络; 6、训练和测试; ## 二、主要文件: 1、graph.py:读入图数据; 2、embeddings.py:预表示学习; 3、sample.py:采样; 4、subgraphs.py/s2vGraph.py:抽取子图; 5、batchgraph.py:子图特征融合; 6、classifier.py:网络配置; 7、parameters.py/until.py:参数配置/帮助文件; ## 三、使用 1、在parameters.py中配置相关参数(可默认); 2、在example/文件夹中运行相应的案例文件--包括链接预测、节点状态预测; 以链接预测为例: ### 1、导入配置参数 ```from parameters import parser, cmd_embed, cmd_opt``` ### 2、参数转换 ``` args = parser.parse_args() args.cuda = not args.noCuda and torch.cuda.is_available() torch.manual_seed(args.seed) if args.cuda: torch.cuda.manual_seed(args.seed) if args.hop != 'auto': args.hop = int(args.hop) if args.maxNodesPerHop is not None: args.maxNodesPerHop = int(args.maxNodesPerHop) ``` ### 3、读取数据 ``` g = graph.Graph() g.read_edgelist(filename=args.dataName, weighted=args.weighted, directed=args.directed) g.read_node_status(filename=args.labelName) ``` ### 4、获取全图节点的Embedding ``` embed_args = cmd_embed.parse_args() embeddings = embeddings.learn_embeddings(g, embed_args) node_information = embeddings #print node_information ``` ### 5、正负节点采样 ``` train, train_status, test, test_status = sample.sample_single(g, args.testRatio, max_train_num=args.maxTrainNum) ``` ### 6、抽取节点对的封闭子图 ``` net = until.nxG_to_mat(g) #print net train_graphs, test_graphs, max_n_label = subgraphs.singleSubgraphs(net, train, train_status, test, test_status, args.hop, args.maxNodesPerHop, node_information) print('# train: %d, # test: %d' % (len(train_graphs), len(test_graphs))) ``` ### 7、加载网络模型,并在classifier中配置相关参数 ``` cmd_args = cmd_opt.parse_args() cmd_args.feat_dim = max_n_label + 1 cmd_args.attr_dim = node_information.shape[1] cmd_args.latent_dim = [int(x) for x in cmd_args.latent_dim.split('-')] if len(cmd_args.latent_dim) == 1: cmd_args.latent_dim = cmd_args.latent_dim[0] model = classifier.Classifier(cmd_args) optimizer = optim.Adam(model.parameters(), lr=args.learningRate) ``` ### 8、训练和测试 ``` train_idxes = list(range(len(train_graphs))) best_loss = None for epoch in range(args.num_epochs): random.shuffle(train_idxes) model.train() avg_loss = loop_dataset(train_graphs, model, train_idxes, cmd_args.batch_size, optimizer=optimizer) print('\033[92maverage training of epoch %d: loss %.5f acc %.5f auc %.5f\033[0m' % (epoch, avg_loss[0], avg_loss[1], avg_loss[2])) model.eval() test_loss = loop_dataset(test_graphs, model, list(range(len(test_graphs))), cmd_args.batch_size) print('\033[93maverage test of epoch %d: loss %.5f acc %.5f auc %.5f\033[0m' % (epoch, test_loss[0], test_loss[1], test_loss[2])) ``` ### 9、运行结果 ``` average test of epoch 0: loss 0.62392 acc 0.71462 auc 0.72314 loss: 0.51711 acc: 0.80000: 100%|███████████████████████████████████| 76/76 [00:07<00:00, 10.09batch/s] average training of epoch 1: loss 0.54414 acc 0.76895 auc 0.77751 loss: 0.37699 acc: 0.79167: 100%|█████████████████████████████████████| 9/9 [00:00<00:00, 34.07batch/s] average test of epoch 1: loss 0.51981 acc 0.78538 auc 0.79709 loss: 0.43700 acc: 0.84000: 100%|███████████████████████████████████| 76/76 [00:07<00:00, 9.64batch/s] average training of epoch 2: loss 0.49896 acc 0.79184 auc 0.82246 loss: 0.63594 acc: 0.66667: 100%|█████████████████████████████████████| 9/9 [00:00<00:00, 28.62batch/s] average test of epoch 2: loss 0.48979 acc 0.79481 auc 0.83416 loss: 0.57502 acc: 0.76000: 100%|███████████████████████████████████| 76/76 [00:07<00:00, 9.70batch/s] average training of epoch 3: loss 0.50005 acc 0.77447 auc 0.79622 loss: 0.38903 acc: 0.75000: 100%|█████████████████████████████████████| 9/9 [00:00<00:00, 34.03batch/s] average test of epoch 3: loss 0.41463 acc 0.81132 auc 0.86523 loss: 0.54336 acc: 0.76000: 100%|███████████████████████████████████| 76/76 [00:07<00:00, 9.57batch/s] average training of epoch 4: loss 0.44815 acc 0.81711 auc 0.84530 loss: 0.44784 acc: 0.70833: 100%|█████████████████████████████████████| 9/9 [00:00<00:00, 28.62batch/s] average test of epoch 4: loss 0.48319 acc 0.81368 auc 0.84454 loss: 0.36999 acc: 0.88000: 100%|███████████████████████████████████| 76/76 [00:07<00:00, 10.17batch/s] average training of epoch 5: loss 0.39647 acc 0.84184 auc 0.89236 loss: 0.15548 acc: 0.95833: 100%|█████████████████████████████████████| 9/9 [00:00<00:00, 28.62batch/s] average test of epoch 5: loss 0.30881 acc 0.89623 auc 0.95132 ```