自己写了用来压缩DC照片的,批量处理整目录文件,非常方便。需要安装PIL#!/usr/bin/envpythonimportImageimportosimportos.pathimportsyspath=sys.argv[1]small_path=(path[:-1]ifpath[-1]==/elsepath)+_smallifnotos.path.exists(small_path):os.mkdir(small_path)forroot,dirs,fi
系统 2019-08-29 22:21:26 2273
JOSN字符串转换为自定义类实例对象有时候我们有这种需求就是把一个JSON字符串转换为一个具体的Python类的实例,比如你接收到这样一个JSON字符串如下:{"Name":"Tom","Sex":"Male","BloodType":"A","Hobbies":["篮球","足球"]}我需要把这个转换为具体的一个Person类的实例,通过对象的方式来进行操作。在Java中有很多实现比如Gson或者FastJosn。如下代码所示(这里不是全部代码,值标识最
系统 2019-09-27 17:57:06 2272
python字符串和日期之间转换StringAndDate这里给出实现代码,直接可以使用。大家可以看下。实例代码:'''''Createdon2013-7-25@author:Administrator'''fromdatetimeimportdatetimeclassStringAndDate(object):'''''StringtoDate(datetime)ordatetostring'''defstringToDate(self,string):
系统 2019-09-27 17:55:46 2272
我们都知道验证码是一张图片,这样程序自动识别的难度大,安全性高。设计到图片,先来看一下img标签里的src属性,也是实现验证码的一个小原理我们都知道src属性可以直接把图片拿过来:比如说拿到本地的图片就在直接可以显示在页面上那它是怎么实现的呢?其实src属性同样像服务端发送了一个请求,Django服务端接收到之后,自动把本地文件读取并返回给了客户端,就实现了上面的效果下面来自己实现一下:html:#src属性是一个url,对应处理函数:deftu2(req
系统 2019-09-27 17:54:30 2272
把函数作为参数的用法比较直观:deffunc(a,b):returna+bdeftest(f,a,b):printf(a,b)test(func,3,5)但有些情况下,‘要传递哪个函数'这个问题事先还不确定,例如函数名与某变量有关。可以利用func=globals().get(func_name)来得到函数:deffunc_year(s):print'func_year:',sdeffunc_month(s):print'func_month:',sstr
系统 2019-09-27 17:54:04 2272
初次接触python,学艺不精,第一次实战写一个文本处理的小程序时便遇到了头疼的问题。先看代码:生成的.CSV文件每两行之间都会多出一行空格(如下图),具体原因可参看点击打开链接withopen('E:\\test.csv','wt')asfout:cout=csv.DictWriter(fout,list_attrs_head)#list_attrs_head头属性列表cout.writeheader()cout.writerows(list_words
系统 2019-09-27 17:52:34 2272
先给大家介绍下Python除法之传统除法、Floor除法及真除法python3.0/总是执行真除法,不管操作数的类型,都返回浮点数结果(即使能整除,如4/2==2.0);//执行Floor除法,会截断余数直接返回一个整数,如果有任何一个操作数是浮点数则返回浮点数(如4//2==2,3//2==1.5,4.0//2==2.0)总之:在python3.0中,/为真除法,不会截断,且结果无论能否整除都是浮点数;//为地板除法,会对除法的结果进行取整返回,至于返回
系统 2019-09-27 17:51:41 2272
首先,先介绍两种引入模块的方法。法一:将整个文件引入import文件名文件名.函数名()/文件名.类名通过这个方法可以运行另外一个文件里的函数法二:只引入某个文件中一个类/函数/变量需要从某个文件中引入多个函数或变量时,用逗号隔开即可from文件名import函数名,类名,变量名接下来,通过一个具体的例子说明引入模块的具体方法:假设新建一个python包test2,里边有一个名为run.py的python文件,run.py文件里有一个名为running()
系统 2019-09-27 17:51:22 2272
使用介绍如何添加断点?说到debug,肯定是要添加断点的,这里有两种方式添加断点:在想要断点代码后添加一行pdb.set_trace()若是使用这种方式,直接运行Python文件即可进入断点调试。用命令行来添加断点bline_number若是使用这种方式,需要python-mpdbxxx.py来启动断点调试。常用命令先简单介绍一下使用命令,这里不用记住,等用到的时候回来查就行。1进入命令行Debug模式,python-mpdbxxx.py2h:(help)
系统 2019-09-27 17:48:35 2272
问题背景从许多中文的参考文献上,rstrip()函数的功能被简单描述为:删除字符串末尾的指定字符(默认为空格),我的理解是,直接去掉末尾指定的字符序列,如我传入的是d,则会去掉末尾的字符d(如果存在),如果传入了字符ad,则去掉末尾的字符ad(如果存在),直到我们开发的服务遇到了一个非常奇怪的bug之后,下面是奇怪问题的复现过程:>>>s='hello_world'>>>s.rstrip('d')#去除末尾的字符d'hello_worl'>>>>>>s.r
系统 2019-09-27 17:46:47 2272
========坚持30天刷leetcode=====题目链接:https://leetcode-cn.com/problems/next-permutation/结果:分析:思路是:1)从后往前找不符合降序(大->小,可以相等)的第一个元素a,2)然后从a的下一个元素开始往后找,找到最后一个大于a的元素b,3)交换a,b的位置,4)再将原先a位置后的所有元素,进行升序排序5)特殊情况①:数组全为降序,逆转数组;特殊情况②:找到a后,a比数组最后一个元素c
系统 2019-09-27 17:46:33 2272
1切换Ubuntu默认python版本Ubuntu18.04默认python为2.7版本,命令行输入python显示的即为默认。内置的python3.6版本需要输入python3进行调用。亲测可行1.1方法一:修改优先级sudoupdate-alternatives:--install<需要链接地址><链接名称><路径><优先级>需要链接地址:/usr/bin/python链接名称:python路径:/usr/bin/python2.7或/usr/bin/
系统 2019-09-27 17:45:55 2272
对比以下两种写法,思考一下为何可以这样写。成绩在[0,50)、[50,60)、[60,80)、[80,100)、100、其它score=float(input("请输入你的成绩:"))ifscore==100:print('666呀,走吃大餐去')elif80<=score<100:print('还行,优秀,走,喝饮料去')elif60<=score<80:print('加油呀,弄明白点')elif50<=score<60:print('这可有点浪哟')e
系统 2019-09-27 17:45:46 2272
在python中,循环有一个语句:for语句。简单的for循环例子>>>hello="world">>>foriinhello:...printi...world上面这个for循环是怎么工作的呢?hello这个变量引用的是"world"这个str类型的数据变量i通过hello找到它所引用的"world",然后从第一字符开始,依次获得该字符的引用。当i="w"的时候,执行printi,打印出了字母w,结束之后循环第二次,让i="e",然后执行printi,打
系统 2019-09-27 17:38:21 2272
当我发现要写python的面向对象的时候,我是踌躇满面,坐立不安呀。我一直在想:这个坑应该怎么爬?因为python中关于面向对象的内容很多,如果要讲透,最好是用面向对象的思想重新学一遍前面的内容。这个坑是如此之大,犹豫再三,还是只捡一下重要的内容来讲吧,不足的内容只能靠大家自己去补充了。惯例声明一下,我使用的版本是python2.7,版本之间可能存在差异。好,在开讲之前,我们先思考一个问题,看代码:为什么我只创建是为a赋值,就可以使用一些我没写过的方法?可
系统 2019-09-27 17:38:17 2272