Python 获取旗舰VPN服务器地址

原先想让Deepin 2014.2和Windows 8.1一样自动添加VPN连接, 写了个Bash Shell, 中途因为解析HTML太麻烦不得不重拾多年不用的Python, 最后由于Deepin的nmcli和VPN服务功能上的问题, 还是实现不了自动添加VPN连接, 只能写出这样只获取服务器地址的半成品. (坑爹的)源代码 #!/usr/bin/env python import requests, re, time, uuid, os from pyquery import »


Python lambda匿名递归

Python的lambda表达式构成的匿名函数只能有一条表达式,而且不能引用自身. 想要在lambda表达式中实现匿名递归就需要在表达式中创造一条新的lambda表达式以实现递归,所以我们需要两条lambda表达式. 一个简单的字典递归穷举算法: def func(str,len): if len==1: return [a for a in str] else: return [a+b for a in str »


Python 批量修改文件名

这个脚本主要是为迅雷快传错误解决:协议解析失败,请检查你的输入而写的,人工修改文件名的效率太低,所以通过脚本完成. 代码如下: # -*- coding: cp936 -*- import sys,os path=sys.argv[1] old=', ' new=',' for »


Python __getattr__实现未定义方法

注意:该文章中的方案不是最优解决方案,只针对特殊情况. 已经好久没用Python写过正经的软件,这两天在做一个由Python实现的命令行工具,主要是模拟cd,ls之类的命令. cd和ls作为方法被写进class Cmd类中,为了处理未定义命令,不得不去捕获AttributeError异常. 但是在我写的那个class中捕获异常看着有违和感,所以换用getattr这个魔术方法解决问题. 下面是一段简化后的代码: class A(): def __init__(self): self.hello='Hello!' def sayHello(self) »


Python locals()与globals()的区别

locals()和globals()在作用域上的区别 正如它们的命名,locals()返回的是局部变量,globals()返回的是全局变量. 这个差异在函数中就比较容易发现了,建议自己编写函数试试. >>> def a(): ... b=1 ... print locals(),globals() ... >>> a() {'b': 1} »


Python批量生成img标签

用脚本语言的人大多数都很懒呢,该脚本需要带入2个filename作为参数. 效果是把文件1里的每行文本都以这种形式输出到文件2. #!/usr/bin/env python import sys if __name__=='__main__': file_in=open(sys.argv[1],'r') file_out=open(sys.argv[ »


C语言经典算法100例的Python实现(前30例)

由于近几天断网,所以有很多事没法做,无聊在电脑里翻到了名为”C语言经典算法100例”的文档,于是就有了下面的内容. 暂且不论”经典”两字是否合理,重写成Python代码也没什么特殊意义,别乱想了. 这里先放出前30例,剩下70例等心情的时候再写吧. 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、 »


Python求二次方程解

这个东西是比较蛋疼的,作业的时候用 代码如下: a,b,c=float(raw_input('a=')),float(raw_input('b=')),float(raw_input('c=')) d=b**2-4*a*c »


Python开多次方根

简单查了下Google,发现没有Python开多次方根的内置函数 只好用这种方法完成对开多次方根的简单实现 代码如下: import math value, root = float(raw_input("Value=")), float(raw_input("Root=")) if root % 2 == 0: pow = math.pow(value, 1.0 »


Python 批量POST下载+已存在文件判断+出错后自动重试

自第一个版本做出来使用后发现一些问题,并在第二个版本中进行了修订,现在这个版本已经能满足基本要求. 主要新增重试功能,原因是服务器因为受到大量请求认为你在攻击服务器所以reset了链接(connection reset by peer),所以我们必须进行重试,以免漏掉一些文件. 还有个细节变化是任务的完成时间会显示,方便观察程序的运行. 目前还有一个问题就是同时进行的线程数量不能太多…会报can’t start new thread异常,另外代码的执行效率仍有待提高,毕竟线程数量太多,需要修改分发机制 下面是完整代码,可以直接下载imgloop的图包,想制作别的网站的下载链接需要自己摸清网站结构,然后照着写代码即可: »