
Python
焦志坤
一名程序猿的自我救赎之路
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RuntimeError: CUDA out of memory解决方法
RuntimeError: CUDA out of memory解决方法前言今天在运行代码的时候出现了cuda的一个报错,报错如下,意思就是超出内存了解决首先查看一下GPU使用情况,命令如下:nvidia-smi看输出的第二列(Memory_Usage)查看各个GPU使用情况找到剩余内存较大的GPU,然后代码中输入如下代码import osimport torchos.environ['CUDA_VISIBLE_DEVICES'] = '2,6' # 代表可以使用第二个和第六个原创 2021-12-02 09:55:44 · 24055 阅读 · 1 评论 -
AttributeError: ‘Dataset‘ object has no attribute ‘value‘报错python使用h5py模块的时候出现解决办法
AttributeError: ‘Dataset’ object has no attribute ‘value’前言今天想要复现一下库上的代码(代码中使用到h5py模块),在本地最开始直接执行pip install h5py成功安装,但是在运行的时候出现了如下报错解决查看了一下库上的h5py的版本发现是2.9的版本,我本地没有指定版本默认下载最新版本(3.5)于是我就本地下载了一下2.9的版本运行之后发现没有问题命令:pip uninstall h5py && pip in原创 2021-11-11 20:08:38 · 7702 阅读 · 1 评论 -
opencv代码实现将视频解析成一帧一帧的图片
opencv代码实现将视频解析成一帧一帧的图片前言:最近在做图像相关的事情,需要将一个视频解析成一帧一帧的图片之后再进行处理,因此需要用到opencv进行处理,若有疑问或者建议欢迎随时留言沟通实现准备工作:- python中使用opencv需要下载一个包:opencv-python- 命令行:pip install opencv-python- 注意:导入包的时候是 import cv2代码import osimport cv2import shutilcurrent_d原创 2021-11-05 16:24:07 · 1487 阅读 · 0 评论 -
pandas实现在同一个excel中写入两个表
pandas实现在同一个excel中写入两个表前言:最近在使用pandas的时候遇到了一个这样的需求,想要在一个excel中写入两个表,之前也做过类似的功能但是有点忘记了,好记性不如烂笔头,自己做个笔记记录一下吧,以后也方便找,实现话不多说直接上代码吧,代码简单不做赘述,若有疑问可留言,看到会解答import pandas as pdpath = 'test.xlsx'test_data = [[1, 2], [3, 4]]cols = ['a', 'b']test_data =原创 2021-11-05 14:50:32 · 859 阅读 · 0 评论 -
python实现多层嵌套字典创建
python实现多层嵌套字典创建一、任务需求根据项目需要最近需要实现一个功能:创建多层嵌套字典功能如下图二、实现话不多说直接上代码def create_dict(key_lst, val): key_num = len(key_lst) final_dict = tmp_dict = {} for index, key in enumerate(key_lst): if index == key_num - 1: tmp_di原创 2021-10-24 09:37:04 · 5220 阅读 · 0 评论 -
shutil.rmtree出现PermissionError解决办法
shutil.rmtree出现PermissionError解决办法前言:今天在使用python中的shutil删除文件夹的时候出现了一个错PermissionError,原因是某个文件没有访问权限,接下来就是解决这个问题了。解决:根据经验文件无法删除多半是因为无法对其编辑,那么就应该查看一下该文件的各种权限,代码如下import osfile_path = '文件路径'print(os.access(file_name, os.R_OK)) #查看文件是否有读的权限print(原创 2021-08-26 11:19:19 · 5009 阅读 · 2 评论 -
pycharm文件右下角变成问号打不开情况,解决方法
pycharm文件右下角变成问号打不开情况,解决方法一、现象今天突然发现了一个问题,使用logger模块生成*.log文件的时候突然发现pycharm怎么也打不开了,给我一顿好奇。如下图问题:同样是log文件上面的就能打开下面的就打不开二、解决经过向度娘请教,发现是因为pycharm没有识别该后缀的文件,但是上面那个因为创建的时候是手动创建的文本文件所以能够打开开始解决:大功告成(完美解决)...原创 2021-08-20 10:22:21 · 4352 阅读 · 0 评论 -
window中设置定时任务执行python程序
window中设置定时任务执行python程序1、在cmd中输入compmgmt.msc打开计算机管理2、在系统工具中找到计划任务程序并点击3、创建基本任务4、点击下一步5、点击下一步67、8、点击完成即可(如需要更详细的配置则需要勾选“下面的小方框”然后再进行操作)...原创 2019-08-30 16:20:06 · 1064 阅读 · 0 评论 -
python中logging模块的简单使用
python中logging模块的简单使用一、应用场景当我们的代码逐渐增加就会发生一个很尴尬的事情,bug也会逐渐增多,因此我们需要定位问题的原因就会耗时比较长,顾我们需要一个比较强大的工具“日志”,这样就可以让我们很好的定位到问题出现的原因以及代码执行过程中的步骤 。二、logging出现logging是python的一个专门为日志服务的模块,因此我们不再需要自己费劲巴拉的自己编写日志的代码,该模块帮助我们集成了很多我们需要的功能三、基本操作import osimport loggi原创 2021-08-09 16:21:19 · 207 阅读 · 0 评论 -
python导入其他目录下的文件
python导入其他目录下的文件我们在python导入的时候切记使用绝对路径,不可使用相对路径(因为很有可能识别不到)但是有时候我们有这样的需求:想要在当前目录下的py文件中导入其他目录下的py文件文件层级如下在1.py中导入2.py(注:文件名不要用数字命名哦否则会出现导入错误,这里只做示例)import osimport sys os.path.join(os.path.dirname(__file__), '../../')sys.path.append(os.path.join原创 2021-07-30 11:17:30 · 3939 阅读 · 2 评论 -
json.loads报错json.decoder.JSONDecodeError: Expecting value: line 1 column 2 (char 1)
json.loads报错json.decoder.JSONDecodeError: Expecting value: line 1 column 2 (char 1)我们在运行如下代码的时候会出现如上报错import jsona = "['1', '2', '3']"print(json.loads(a))原因:因为字符串中的列表中的值是单引号解决方法:将其中的单引号替换成双引号即可import jsona = "['1', '2', '3']"a = a.replace(原创 2021-07-29 11:54:22 · 18045 阅读 · 10 评论 -
python获取一个文件路径的名称不带路径
python获取一个文件路径的名称不带路径import osfile_path= "D:\\test\\test.log"dirt_0, suffix = os.path.splitext(file_path) # 获取后缀之前的部分和后缀,返回元组数据类型print(dirt_0, suffix)dirt_1, file_name = os.path.split(dirt_0) # 获取文件目录,文件,返回元组数据类型print(dirt_1, file_name)# 一行file原创 2021-07-01 11:37:05 · 2191 阅读 · 0 评论 -
c++结构体的二进制文件,python如何解析
c++结构体的二进制文件,python如何解析场景分析现有如下场景:有一个二进制文件需要解析成可读数据已知条件:该文件符合c++结构体对应的结构体数据,因此我们可以通过结构体中所占用的字节数来进行解析需要工具:*python的模块struct*c++结构体对应的数据类型python struct模块介绍struct模块中的函数函数返回值解析pack(fmt,v1,v2…)string按照给定的格式(fmt),把数据转换成字符串(字节流),并将该字符串返原创 2021-07-01 11:24:37 · 1397 阅读 · 0 评论 -
字符串中有\n与\r时进行replace替换\n时出现的问题
字符串中有\n与\r时进行replace替换\n时出现的问题出现问题的情况(有些人不太理解)str1 = """\r aaaaaaaaaaaa\rbbbbbb\n今天天气好差"""print(str1.replace('\n', ''))输出:bbbbbb今天天气好差为什么跟想象中的不太一样呢?问题分析(理解\r 与\n的区别)回车和换行的历史:机械打字机有回车和换行两个键作用分别是: 换行就是把滚筒卷一格,不改变水平位置。 (即移到下一行,但不是行首,而原创 2020-06-23 18:16:22 · 7379 阅读 · 0 评论 -
jupyter notebook修改起始工作目录
jupyter notebook修改起始工作目录找到jupyter快捷方式右键选择属性会看到下面的情况原创 2020-06-23 16:57:00 · 294 阅读 · 0 评论 -
python中type跟isinstance的区别
isinstance() 与 type() 区别:type() 不会认为子类是一种父类类型,不考虑继承关系。isinstance() 会认为子类是一种父类类型,考虑继承关系。如果要判断两个类型是否相同推荐使用 isinstance()。class A: pass class B(A): pass isinstance(A(), A) # returns Truetype(A()) == A # returns Trueisinstance(B(), A原创 2020-06-01 10:09:12 · 195 阅读 · 0 评论 -
删除列表中的重复元素并且保持顺序不变,可散列表与不可散列表
删除列表中的重复元素并且保持顺序不变,可散列表与不可散列表可散列表def dedupe(items): seen = set() for item in items: if item not in seen: yield item seen.add(item)if __name__ == '__main__...原创 2020-01-11 13:02:38 · 1236 阅读 · 0 评论 -
如何使用print将内容输入到一个.log文件中
如何使用print将内容输入到一个.log文件中import sys# 第一次是正常打印出来的print('正常打印')# 打开一个文件,追加方式f = open('outfile.log','a+')# 将文件赋值给系统的标准化输出sys.stdout = f# 打印到外部文件中print('外部打印')...原创 2020-01-05 10:24:22 · 1410 阅读 · 0 评论 -
python中的元类
python中的元类元类详解链接转载 2019-10-16 22:06:47 · 148 阅读 · 0 评论 -
什么是死锁?死锁产生的四个必要条件是?如何避免死锁的产生?
什么是死锁?死锁产生的四个必要条件是?如何避免死锁的产生?原创 2019-10-07 09:52:01 · 964 阅读 · 1 评论 -
python中time常用模块详解
python中time常用模块详解time.sleep()睡眠功能,使程序等待多小秒后执行time.time()时间戳:从格林威治日开始(1970年1月1日0时0点0分)time.localtime()、 time.gtime()时间戳转化为时间元组参数:时间戳(不添加则默认当前时间)结果:tm_year:年份tm_mon:月份tm_mday:一个月的第几...原创 2019-10-03 11:04:59 · 505 阅读 · 0 评论 -
Django项目nginx部署
Django项目nginx部署1、 python-devel命令:yum -y install python-devel2、安装Django1.8.2 pillow django-ckeditor5.4.0pip3 install django==1.8.2pip3 install pillowpip3 install django-ckeditor==5.4.03、p...原创 2019-07-26 08:24:09 · 328 阅读 · 0 评论 -
python集合的基本操作
python集合的基本操作特点:无序、唯一、不可变集合元素的添加add():添加单个元素update():添加集合集合元素的删除pop():弹出一个元素(由于集合是无序的所以无法指定索引进行删除)remove():指定删除集合中具体的元素clear():清空集合del:python内置的方法删除集合之间的数学运算交集(& 或者 int...原创 2019-10-09 19:22:36 · 608 阅读 · 0 评论 -
Python 里面 range 和 xrange 的区别
Python 里面 range 和 xrange 的区别xrange 和 range 的参数和用法是相同的。只是 xrange()返回的不再是一个 数列,而是一个 xrange 对象。这个对象可以按需生成参数指定范围内的数字 (即元素)。由于 xrange 对象是按需生成单个的元素,而不像 range 那样, 首先创建整个 list。所以,在相同的范围内,xrange 占用的内存空间将更小,...原创 2019-10-09 22:56:24 · 244 阅读 · 0 评论 -
进程中死锁出现的的原因
产生死锁的四个必要条件(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。避免死锁上面列出了死锁的四个必要条件,我们只要想办法破其中的任意一个或多个条件,就可以避免 死锁发生,...原创 2019-10-10 17:18:27 · 426 阅读 · 0 评论 -
os模块获取文件后缀名
os模块获取文件后缀名import osurl = 'http://music.163.com/song/media/outer/url?id=562598065.mp3'suffix = os.path.splitext(url)[1]print(suffix)输出:.mp3原创 2019-08-26 14:34:14 · 3739 阅读 · 0 评论 -
进程、线程、GIL、协程:详解
进程、线程、GIL、协程:详解线程和进程共同点:都是用来实现多任务的多任务目的:提高效率eg:银行开多个窗口来接待客户线程与进程的区别进程:是资源分配的单位,它具有独立的内存空间线程:是CPU调度的单位,利用时间片对线程进行调度(CPU在任意时刻只能执行一个代码块,由于CPU计算速度特别快,所以多线程感觉就好像每个线程同时在执行一样)进程与线程的关系一个进程包含多个线程,...原创 2019-09-24 20:29:35 · 511 阅读 · 2 评论 -
python中is和==的区别
python中is和==的区别a = [1,2,3]b = [1,2,3]print(a is b)print(a == b)输出:FalseTrue解释:is代表的是两个变量的数值与内存地址完全相同,==是两个变量的值相同即可示例:print(id(a),id(b))-------2446797339784 2446797338248...原创 2019-09-20 23:06:55 · 135 阅读 · 0 评论 -
用程序输出打印起始时间2018-04-29 00:25:00,结束时间是2018-05-01 13:15:00内所有的五分钟时间
用程序输出打印起始时间2018-04-29 00:25:00,结束时间是2018-05-01 13:15:00内所有的五分钟时间,如:‘2018-04-29 00:25:00’, ‘2018-04-29 00:30:00’, ‘2018-04-29 00:35:00’, ‘2018-04-29 00:40:00’,import time# 起始时间字符串start_time = '2018...原创 2019-08-08 18:54:12 · 939 阅读 · 0 评论 -
python类中的__call__方法
class A: def __call__(self, *args, **kwargs): print('执行了call方法') class B: def __init__(self,cls): print('在实例化A之前做一些事情') self.a=cls()() print('在实例化A之后做一...原创 2019-08-02 12:09:38 · 886 阅读 · 0 评论 -
python中setdefault和update的区别
字典中的setdefault和updatea = { 'jiao':1}a.setdefault('jiao',2)print(a) # {'jiao': 1} 如果有就无法覆盖,a.setdefault('jiao1',2)print(a) # {'jiao1': 2, 'jiao': 1}如果没有就创建a.update(jiao=2) # 改法...原创 2019-08-08 13:46:22 · 479 阅读 · 0 评论 -
正则中的search和match
search与match的区别都是匹配一次制定的字符,re.search是从字符内部开始匹配,而match是从头部开始匹配,也就是说,如果开头没有,search会继续向后匹配,match会返回none...原创 2019-08-05 21:21:06 · 751 阅读 · 0 评论 -
正则中的贪婪匹配,与非贪婪匹配
贪婪匹配尽可能多的匹配字符示例import rehtml = '''<img src='1.jpg'><img src='2.jpg'><img src='3.jpg'>'''result = re.findall(r"<img src='(.*)'",html)print(result)输出结果["1.jpg'><...原创 2019-08-05 21:13:44 · 172 阅读 · 0 评论 -
在docker容器中安装自己的python环境
在容器中安装自己的python3环境1、创建centos镜像,并且定义容器启动 docker run -dit --name centos_base 9f38484d220f /bin/bash2、下载依赖包 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel ...原创 2019-07-23 22:36:19 · 10914 阅读 · 0 评论 -
python中条件控制语句示例
查询成绩中的坑score = int(input('请输入成绩:'))if score>=90: print('优秀')if score>=80: print('良好')elif score>=70: print('还行')注意:以上代码中如果第二个if并非elif则会出现打印两种结果的情况,如输入80以上的成绩便会输出,优秀和良好两个结果...原创 2019-07-19 08:00:29 · 260 阅读 · 0 评论 -
python求列表中数字的最大值最小值及下标
python求列表中数字的最大值最小值及下标a = [2,3,4,5,6,7]max_num = a[0]min_num = a[0]max_index = 0min_index = 0for i in range(len(a)): if a[i]>max_num: max_num = a[i] max_index = i else...原创 2019-07-19 07:56:44 · 26326 阅读 · 1 评论 -
python打印传送带
python打印传送带import timea = [1,2,3,4,5]while True: fir = a[0] for i in range(1,len(a)): a[i-1] = a[i] a[len(a)-1] = fir print(a) time.sleep(1)原创 2019-07-19 07:55:28 · 222 阅读 · 0 评论 -
python将字符串打印出来(行数==个数)
将一个字符串打印出(行数==个数)a = 'asdfghjkldsadasd'hs = 1gs = 0i = 0while(i<len(a)): if hs==gs: print() gs=0 hs += 1 gs+=1 print(a[i],end='') i+=1...原创 2019-07-19 07:52:38 · 1591 阅读 · 0 评论 -
python将一个字符串逆序输出
将一个字符串逆序输出a = '12345678'print(a[::-1])原创 2019-07-19 07:49:18 · 19386 阅读 · 3 评论 -
ImportError: attempted relative import with no known parent package
导入总结导入需要区分工作目录首先可以通过os.getcwd查看当前工作的目录是哪里通常在python框架开发时候,发现,在项目目录外层嵌套一个工作目录,目录名称通常和工作目录一致。如果使用编译器打开项目,过多一层或者过少一层打开目录都会导致导入错误,是因为编译器打开那个目录,就将python的工作目录设置那一层,只有上述结构才能实现下面的导入方法. 和 …导入 相对位置是执行...原创 2019-08-07 15:24:38 · 5286 阅读 · 0 评论