python
放下扳手&拿起键盘
学成文武艺,货卖帝王家。
展开
-
win10系统运行sh脚本
前言:在win10系统下,有时候也需要通过脚本实现一些程序的运行比较方便。这里依赖于微软的Git bash工件来实现。测试脚本:1.调用python函数文件def show_tensor(): try: import torch except: print('Nope.\n') else: x= torch.Tensor(2,2) print(x) if __name__ ==原创 2022-02-08 11:52:30 · 3615 阅读 · 0 评论 -
python图像拼接
前言:最近在对算法检测的结果进行保存的时候,需要将3张图拼接为一张图作为存储。这里针对opencv和PIL两种图像处理库进行实现,具体代码如下。PIL方法实现:from PIL import Imageimg_1 = Image.open("./1.jpg")img_2 = Image.open("./2.jpg")img_3 = Image.open("./3.jpg")img_list = []img_list.append(img_1)img_list.append(im原创 2021-09-03 20:41:09 · 283 阅读 · 0 评论 -
函数call__call__(self)
用法转载 2019-11-07 22:36:56 · 599 阅读 · 0 评论 -
函数super使用方法
前言:super()函数是用于调用父类(超类)的一种方法,具体可点击这里查看。示例代码:1.创建两个单独的类;类Bird实现所有鸟的基本能力:进食。第一次进食输出“Aaaah...”;第二次进食输出“No,thanks!”类SongBird实现鸟的部分能力:唱歌。调用song函数输出"squawk!"class Bird: def __init__(self):...原创 2019-11-07 22:11:39 · 686 阅读 · 0 评论 -
Python-位运算符规则、原理与用法
一、预备知识:1.十进制转二进制&二进制转十进制2.代码实现:# -*- coding: utf-8 -*-#十进制转二进制x = input("请输入十进制整数:")x = int(x)x = bin(x)print(" 二进制:",x[2:])#二进制转十进制x = input("请输入二进制整数:")x = int(x,2)pr...原创 2018-12-14 17:09:30 · 26881 阅读 · 4 评论 -
解决问题:TypeError: longestCommonPrefix() missing 1 required positional argument: 'strs'
前言:最近在leetcode上刷题,感觉倍棒!然后,在写好程序之后,调用程序的时候,不小心造成了如下bug:存在问题:TypeError: longestCommonPrefix() missing 1 required positional argument: 'strs'分析问题:在我们定义函数和类的时候,在第一个参数的位置默认应该添加self,例如add(self,str,str1)...原创 2018-12-09 09:42:55 · 3350 阅读 · 0 评论 -
python-list[::-1]数据翻转
例1:A=[1,2,3,4,5]B=A[::-1]C=A[2::-1] #从倒数第2个数字(不包含)往前进行降值输出。print(B)print(C)结果:[5, 4, 3, 2, 1][3, 2, 1]原创 2018-12-04 21:35:42 · 773 阅读 · 0 评论 -
Python-自定义修饰器
前言:为了代码的整洁性,一般可以通过构建一个修饰器函数,来对目标函数做修饰。例如:需要对一个代码进行耗时检测,此时就可以将代码计时函数作为一个修饰器函数,然后其作用对象就是目标函数。代码实现:# -*- coding:utf-8 -*-import time#函数:判断输入数据是否为质数def is_prime(num): if num<2: ret...原创 2018-11-01 20:19:05 · 846 阅读 · 0 评论 -
python-insert
insert() 函数用于将指定对象插入列表的指定位置。函数语法:list.insert(index, obj)参数说明:index -- 对象 obj 需要插入的索引位置。 obj -- 要插入列表中的对象。#!/usr/bin/pythonA = [1,2,3,4,5,6,8]A.insert( 6, 7)print(A)#result:#[1,2...原创 2018-10-27 22:56:10 · 1705 阅读 · 0 评论 -
排序算法
1.直接插入排序算法思想:对一组无序数据,比如[4,2,1,3,5],首先以前两个为一个单元进行排序,结果为[2,4];然后再插入一个数字,即[2,4,1],进行排序,结果为[1,2,4];然后再插入一个数字,即[1,2,4,3],进行排序,结果为[1,2,3,4];然后再插入一个数字,即[1,2,3,4,5],进行排序,结果为[1,2,3,4,5]。代码实现:# -*- cod...原创 2018-10-26 21:37:55 · 158 阅读 · 0 评论 -
python-range的三种用法
前言:范围是在蟒中经常用到的一个函数,但是如果不注意细节则会经常犯错。函数语法:range(start,stop) #range(0,3) 结果:[0,1,2]range(stop) #range(3) 结果:[0,1,2]range(start,stop,step) #range(0,3,1) 结果:[...转载 2018-10-26 20:15:34 · 13086 阅读 · 0 评论 -
由两个列表生成一个字典的方法
前言:python接触久了,处理数据时,很容易就想到list。的确,list存储、调用数据很方便,也很简洁。为了更便捷地运用list,今天做一下有关list生成字典的代码。num_class = 3list1 = ['zhangsan','lisi','wangerxiao']list2 = []for i in range(num_class): list2.append(i...原创 2018-09-16 22:28:39 · 7117 阅读 · 1 评论 -
Python---去除txt文件中重复的行数
1.前言: 采用python中set()的概念,通过遍历原始文档中的元素,并将其添加到set()中,然后根据set()的性质来判断新的元素是否要被添加到新的文档中去。最终生成的新的文档即满足所需。2.代码实现:#coding:utf-8readDir = "./original_file.txt"writeDir = "./new_file.txt"outfil...原创 2019-01-28 10:20:54 · 11491 阅读 · 7 评论 -
将一个文件夹中的多个子文件夹中的图像存储在新的文件夹中
import os, random, shutildef moveFile(fileDir,tarDir): data_list = [] pathDir = os.listdir(fileDir) for i in range(len(pathDir)): if pathDir[i].split(".")[1] == 'png': ...原创 2019-09-10 23:38:52 · 429 阅读 · 0 评论 -
python 按照顺序读取文件夹中的图片名称
前言:在ubuntu16.04系统中,读取图像名称的时候,往往会出现乱序的现象,比如:1,2,3,4,5,6,7,8,9,10可能会被提取到的顺序为:1,10,2,3,4,5,6,7,8,9为了避免类似问题,对图像顺序的读取做了调整,并重命名了图片名称.大体思路:将文件夹中的图片名称存储在一个列表中,对列表中的元素进行排序,然后按照新的序列进行文件重命名.代码实现:...原创 2019-08-30 23:04:00 · 11949 阅读 · 0 评论 -
itertools.permutations()
函数功能:返回可迭代对象的所有数学全排列方式。案例:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比。请编程序找出三队赛手的名单。代码实现:import itertoolsfor i in itertools.permutations('xyz'): if ...转载 2019-08-29 23:24:43 · 1036 阅读 · 0 评论 -
获取B列表中元素在A列表中相同元素的索引值
代码实现:A = [1,2,3,4,5]B = [0,1,2,3]for i,element_A in enumerate(A): for j,element_B in enumerate(B): if element_A == element_B: print(i)原创 2019-08-26 11:32:27 · 608 阅读 · 0 评论 -
pycharm 快速插入当前时间
前言:代码是否要加注释,一直是大家争吵的话题。不过我觉得该写还得写,万一哪天连自己都看不懂了就尴尬了。代码写得好,bug少,看起来就像个闲人。注释多,代码清晰,任何人接手非常方便,看起来谁都可以替代。bug写的烂,每天风风火火改bug,各种救火,解决各种线上重大问题,于是顺理成章成为了公司亮眼的人才。代码写的乱到只有自己能看懂,公司不可替代的重要人才。这里主要介绍一下,在做代...转载 2019-08-03 14:29:08 · 2052 阅读 · 1 评论 -
python2.X与python3.X的区别
前言:最近在复现一些大牛的算法,经常会遇到一些关于版本不兼容的问题,导致算法运行错误。甚是讨厌,坑位如下。问题1:'float' object cannot be interpreted as an integer。原因:在python2,/只留下了整数部分,去掉了小数,是int型。在python3里,/的结果是真正意义上的除法,结果是float型。所以便出现了Err...原创 2019-05-22 16:07:39 · 153 阅读 · 0 评论 -
Python:通过一张照片将其在EXCEL中生成一张基于单个像素点的表格图像
代码实现。转载 2019-05-21 12:42:12 · 1115 阅读 · 1 评论 -
Python 中的 if __name__ == '__main__' 该如何理解
http://blog.konghy.cn/2017/04/24/python-entry-program/转载 2019-05-04 10:29:17 · 167 阅读 · 0 评论 -
python——批量修改文件夹中的图片名称并保存在新的文件夹中
前言:需要修改的文件夹A中的各类文件夹(a、b)中的图片。---A ---a --abcd1.jpg --1abcd.jpg ---b --b-1.jpg --b-2.jpg修改后的文件夹B的名称结构图:---B ---a --1.jpg ...原创 2018-08-22 20:26:35 · 7063 阅读 · 1 评论 -
python-批量重命名文件夹名称
前言:在数据预处理的时候,特别是在将图像数据转为tfrecord格式的时候,有时候类别文件夹名称不被读入。需要针对这个问题更改文件夹名称。这时候就产生了如下工作:代码功能:批量重命名文件夹名称#!/usr/bin/python# -*- coding: UTF-8 -*-import os, syspath1 = 'E:\\Desktop\\test\\data' #所需修改文件...原创 2018-08-22 20:16:02 · 8102 阅读 · 2 评论 -
例子:面对对象
class Student(object): def __init__(self, name, score): self.name = name self.score = score def print_score(self): print('%s: %s' % (self.name, self.score)) def get_gra原创 2017-11-27 20:30:47 · 172 阅读 · 0 评论 -
区别:面对过程&面对对象
1.面对过程代码:std1 = { 'name': 'Michael', 'score': 98 }std2 = { 'name': 'Bob', 'score': 81 }def print_score(std): print('%s: %s' % (std['name'], std['score']))if __name__=='__main__': print(print_s原创 2017-11-27 20:05:09 · 939 阅读 · 0 评论 -
reduce( )
reduce( ) 功能:把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算。 例子:from functools import reducedef add(x, y): return x + yprint(reduce(add, [1, 3, 5, 7, 9]))结果: 25原创 2017-11-26 20:59:04 · 189 阅读 · 0 评论 -
map( f,Iterable)
map( f,Iterable) 功能:将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator(迭代器)返回。 参数:(1)f:函数(2)Iterable:可迭代对象 例子:def is_odd(n): return n %2==1print(list(map(is_odd,[1,2,3,4,5,6])))结果: [True, False, True, False,原创 2017-11-26 20:54:44 · 202 阅读 · 0 评论 -
sorted( )
sorted( ) 定义:返回一个新的列表,其中包含了按升序排列的所有条目。 可以提供自定义键函数来定制排序顺序,并且可以设置反向标志以降序请求结果。 功能:(1)基本排序(2)可以接收一个通过key指定的函数来实现自定义的排序。 例子:>>>sorted([20, 5, -12, 9, -21])结果: [-21, -12, 5, 9, 20]so...原创 2017-11-26 20:44:23 · 526 阅读 · 0 评论 -
filter()
filter() 功能:把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。 参数:(1)函数(2)序列 例子:def is_odd(n): return n %2==1print(list(filter(is_odd,[1,2,3,4,5,6])))结果: [1, 3, 5]原创 2017-11-26 20:26:52 · 187 阅读 · 0 评论 -
可迭代对象&迭代器
一、可以直接作用于for循环的数据类型: 1.可迭代对象(Iterable): (1)集成数据类型(list、tuple、dict、set、str) (2)生成器(generator) (3)带yield的generator函数 2.迭代器(Iterator): 可以被next()函数调用并不断返回下一个值的对象。 二、如何判断一个对象是否是Iterable/Iterator? 1.原创 2017-11-25 21:34:37 · 326 阅读 · 0 评论 -
python笔记
1.变量本身类型不固定的语言称之为动态语言。 2.定义变量时必须指定变量类型的语言称之为静态语言。(int a =3) 3.数据类型: 整数、浮点数、字符串 4.变量: 布尔值、空值、常量 5.list(列表)、tuple(元组)原创 2017-11-21 22:15:27 · 147 阅读 · 0 评论 -
错误处理
1.定义:Python通过内置一套try…except…finally…的错误处理机制来对输入数据进行判断处理。try: print('testing...') r = 10 / 0 print('result:', r)except ZeroDivisionError as e: print('except:', e)finally: print('fi原创 2017-12-01 20:07:39 · 195 阅读 · 0 评论 -
类的for循环
例子:斐波那契数列的实现class Fib(object): def __init__(self): self.a, self.b = 0, 1 # 初始化两个计数器a,b# 如果一个类想被用于for ... in循环,类似list或tuple那样,# 就必须实现一个__iter__()方法,该方法返回一个迭代对象. def __iter__(self):原创 2017-11-29 20:39:46 · 490 阅读 · 0 评论 -
python-视频分帧&多帧合成视频
1.视频分帧:import cv2vidcap = cv2.VideoCapture('005.avi')success,image = vidcap.read()count = 0success = Truewhile success: success,image = vidcap.read() cv2.imwrite("frame%d.jpg" % count, im...原创 2018-03-16 17:05:13 · 5586 阅读 · 0 评论 -
区别:list和array
1.list:列表,python的内置数据类型,list中的数据类型不必相同。2.array:数组,array中的数据类型必须全部相同。例子:import numpy as nplist=[1,2,3,'a']print(list)array=np.array([1,2,3,'a'])print(array)print(np.shape(array))结果:[1, 2, 3, 'a']...原创 2018-03-05 22:25:49 · 265 阅读 · 0 评论 -
python-批量创建指定名称的文件夹
前言:在用深度学习的方法做目标分类时,会遇到创建数据集的问题。比如说需要创建200类,每类目标存放500张图片。这样就需要首先建立200个不同名称的文件夹。然而,如果一个个创建显然要不得,因此,就有了以下的代码:1.批量创建N个文件夹:import os, sysdef MkDir(): path = './file/'#创建文件路径 i = 0 for i i...原创 2018-08-04 20:35:32 · 16379 阅读 · 1 评论 -
视频分帧&多帧合成视频
实现环境:Ubuntu16.041.视频分帧step1:在安装目录下打开终端,安装ffmpeggit clone https://git.ffmpeg.org/ffmpeg.git ffmpegstep2: 在视频文件目录下打开终端,输入如下命令:ffmpeg -i test.avi frames_%03d.jpg -hide_banner其中,test.avi为待...原创 2018-07-21 14:14:37 · 7568 阅读 · 0 评论 -
单线程&多线程
1.基于python的单线程示例:from time import ctime,sleepimport timedef play_video(video): for i in range(2): print ("I am playing video: %s at %s"%(video,ctime())) sleep(5)def play_music...原创 2018-07-11 19:04:12 · 229 阅读 · 0 评论 -
defaultdict(list) (第一部分)
cc = {}# print(cc[1]) #当所访问的键不存在的时候,会报错!cc[1]='zhang'print(cc[1])# 结果:zhangfrom collections import defaultdictdd = defaultdict(list) #defaultdict类的初始化函数接受一个类型作为参数,当所访问的键不存在的时候,可以实例化一个值作为默认值:...原创 2018-05-24 11:50:55 · 3789 阅读 · 0 评论 -
defaultdict(list) (第二部分)
# strings = ('puppy', 'kitten', 'puppy', 'puppy', 'weasel', 'puppy', 'kitten', 'puppy') #新建一个元组# counts = {} #新建一个字典## 统计strings中某个单词出现的次数,并在counts字典中作记录。单词每出现一次,在counts相对应的键所存的值数字加1。# 方法一:×# f...转载 2018-05-24 11:17:45 · 797 阅读 · 0 评论