Pyhton踩坑录
779醒
这个作者很懒,什么都没留下…
展开
-
to_hdf提示:ImportError: Missing optional dependency ‘tables‘. Use pip or conda to install tables.
to_hdf原创 2023-01-16 11:32:33 · 964 阅读 · 1 评论 -
json模块错误:Expecting value: line 1 column 1 (char 0)
json模块错误原创 2022-10-22 00:57:37 · 5679 阅读 · 0 评论 -
python引入外部文件(包括项目外)
python引入外部文件原创 2022-08-16 06:35:49 · 2371 阅读 · 0 评论 -
python 新建目录后引用
python 新建目录原创 2022-07-21 21:39:12 · 291 阅读 · 0 评论 -
解决apscheduler报错:Run time of job …… next run at: ……)” was missed by
异步任务好像超时了2s,无法执行查看创建异步任务时参数设置:self.scheduler.add_job(son.scheduler, trigger='cron', minute='*/' + son.time_interval.split('m')[0], misfire_grace_time=1, max_instances=3, id=son.name)其中misfire_grace_time=1表示为任务的超时.原创 2022-05-30 21:45:03 · 1751 阅读 · 0 评论 -
Python 浅拷贝、深度拷贝、函数传参
直接赋值:其实就是对象的引用(别名)。浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。#!/usr/bin/python# -*-coding:utf-8 -*- import copya = [1, 2, 3, 4, ['a', 'b']] #原始对象 b = a #赋值,传对象的引用c = copy.copy(a)原创 2021-08-25 22:46:18 · 1147 阅读 · 0 评论 -
Python快速定位bug
import tracebacktry: dosth()except Exception: print(traceback.format_exc())原创 2021-08-05 11:08:00 · 256 阅读 · 0 评论 -
Python 函数非关键字参数,关键字参数混用
隐式调用中,传参都需要关键字参数但有时候写成params={‘a’:1,‘b’: 2}fun(params)有时候写成fun(params=params)def __getattr__(self, name): # 当访问object不存在的属性时会调用该方法,即没有明确定义函数时,去method中寻找隐性调用方法 def wrapper(*args, **kwargs): # 隐式调用全部使用kwargs # 处理传来的非关键字参数,直接写pa原创 2021-08-02 18:39:21 · 426 阅读 · 0 评论 -
Python Asyncio 学习笔记
asyncio是什么(什么情况下需要使用asyncio)同步代码(synchrnous code)我们都很熟悉,就是运行完一个步骤再运行下一个。要在同步代码里面实现"同时"运行多个任务,最简单也是最直观地方式就是运行多个 threads 或者多个 processes。这个层次的『同时运行』多个任务,是操作系统协助完成的。异步编程(asynchrnous code)与之不同的是,只使用一个进程,不使用 threads,但是也能实现"同时"运行多个任务(这里的任务其实就是函数)。异步函数必要的可以暂停,把原创 2021-07-25 03:40:33 · 187 阅读 · 0 评论 -
Python定时任务工具之APScheduler学习笔记
看了一大堆文章帖子,总算从各种定义、参数中爬了出来。现在总结一下APScheduler定时框架学习结果功能:Python定时任务框架。提供了基于日期,固定时间间隔及crontab类型的任务,并且可以持久化任务,并以daemon方式运行应用我的理解:一个工具包,可以方便地添加、存储定时任务,并按时调度、执行一、简单案例1 安装包pip install apscheduler2、最简功能代码from apscheduler.schedulers.blocking import BlockingS原创 2021-07-22 13:54:03 · 1673 阅读 · 2 评论 -
Python 修饰器学习记录
基础教程:https://www.runoob.com/w3cnote/python-func-decorators.html装饰器(Decorators)是 Python 的一个重要部分。简单地说:他们是修改其他函数的功能的函数。装饰器让你在一个函数的前后去执行代码装饰器模型def a_new_decorator(a_func): # 装饰器 def wrapTheFunction(): print("I am doing some boring work befor原创 2021-07-22 08:51:20 · 80 阅读 · 0 评论 -
异步框架学习笔记
一、exec()执行字符串格式命令exec("self.%s=trade_son(config['%s'],self.exchange,'%s')" % (i, i, i))self.i=trade_son(config[i],self.exchange,i)# 两行等效,exec写法更优雅一些二、添加定时作业(异步运行)APScheduler调度模块使用详解Apscheduler功能:基于日期、时间间隔周期性地执行任务.https://apscheduler.readthedocs.io原创 2021-07-20 17:38:10 · 83 阅读 · 0 评论 -
修改系统时间
一、windows首先是修改系统时间的权限: 运行->gpedit.msc->计算机配置->windows设置->安全设置->本地策略->用户权限分配,找到更改系统时间。添加需要配置权限的用户(当前用户)选高级查找所有用户选择用户其次修改用户权限。右键我的电脑->管理->系统工具->本地用户和组->用户->找到Administrator,双击打开属性,取消勾选账户已禁用,然后重启计算机。二、linux...原创 2021-07-13 01:59:50 · 2210 阅读 · 0 评论 -
Python timedelta中提取天数
timedalte 是datetime中的一个对象,该对象表示两个时间的差值begin_time = df['candle_begin_time'].iloc[0]end_time = df['candle_begin_time'].iloc[-1]num_days = (end_time - begin_time ).days原创 2021-06-27 06:02:01 · 3399 阅读 · 0 评论 -
Python open()传入路径参数用单斜杠分隔,运行报错:路径用双斜杠分隔无效
Windows系统中,Python环境open()函数打开文件,地址参数传入路径单斜杆分隔,但运行时跳出告警无效参数,参数带双斜杠:a = 'subaccount'b = '2021-06-24 13:43:00'g_json_dir = r'E:\TEMP'json_path = g_json_dir + r'\%s_%s.json' % (a, b)with open(json_path , "w", encoding='utf-8') as f: json.dump(‘1111原创 2021-06-24 15:02:07 · 1271 阅读 · 1 评论 -
bytes与str格式互相转换
str转bytesbytes(str(message), encoding=‘utf-8’)第一个参数必须是str格式,第二个参数不能省略bytes转strstr(message_bytes)直接转换有个问题,str字符串如果有b’‘前缀的,会再叠加一个b’'前缀,如图:...原创 2021-06-23 19:36:44 · 1770 阅读 · 0 评论 -
python str转list str带[]
1、str带[],长得跟list一样时,格式[1,2,3,4,5]有些变量打印出来像list,不type()一下根本分不出来直接按list取最后一个数,哈哈了list_str= '[1,2,3,4,5]'print(list_str[-1])# ]那就str转list吧,常规方法list()往上一套list_err = list(list_str)print(list_err[-1])# ]怎么还是一样,打印出来看看print(list_err)# ['[', '1', ','原创 2020-06-30 23:32:22 · 8894 阅读 · 3 评论 -
学习笔记:python面向对象
第一章 课程介绍OOP基本单元:对象封装:数据,功能(function)第二章 面向对象概念世界事物、分类抽象两个基本概念:类,对象基本要素:属性,方法属性(信息)方法(功能)继承,对群体进行细分子类有更详细的特性多重继承,多个父类多态子类重写父类方法同一类人对同一个事物不同的看法第三章 面向对象3-1定义类class ClassName: def __init__ # 构造函数 # 析构函数class OldStyle: def __init__原创 2020-06-25 11:32:58 · 238 阅读 · 0 评论 -
我真的懂索引吗?——groupby、resample结果无法输出,重新设置索引reset_index
一直很难描述这个问题,陆陆续续困扰了好久dataframe格式数据,经过groupby、resample等操作后结果显示表头(列名)不止一行想把前2列也作为结果记录到数据库,或者读取整行4个字段信息,一直没有好的办法在网上找了这些问题1、dataframe表头多行,列名多行,2、dataframe多层列名,多层表头3、列名错行、表头错行、标题错行4、dataframe groupby,resample后保存5、dataframe groupby,resample后第一行为空这应该是一个原创 2020-06-23 09:07:14 · 1449 阅读 · 3 评论 -
python 如何查找字符串中首次、最后一次出现的字符位置
如何查找字符串中最后一次出现的字符位置str =r'123-abc-!@#'str.rfind('-') # 返回最右边的字符位置原创 2020-06-19 06:30:23 · 33814 阅读 · 2 评论 -
python文件无法作为模块被导入的可能原因
开始跑测试程序,引用模块失败ModuleNotFoundError: No module named '_0_FUNCTION'由于引用了自己写的一个模块,没有加到PYTHONPATH,直接在pycharm运行是没问题,因为pycharm会默认把当前project加到sys.path.但是在命令行则不会报找不到自定义模块的错误设置项目的初始位置,在任何位置执行代码可以找到import 项目包不出错1、查看已有默认路径,并加入项目根目录所在路径>>> import sys>原创 2020-06-16 08:35:12 · 1052 阅读 · 0 评论 -
Python 实现Google身份验证
亲测有效import hmac, base64, struct, hashlib, timedef calGoogleCode(secret_key): """ 基于时间的算法 :param secret_key: :return: """ decode_secret = base64.b32decode(secret_key, True)...原创 2020-04-30 20:52:24 · 1139 阅读 · 1 评论 -
Python ImportError:DLL load failed:找不到指定的模块
命令行运行.py文件,提示ImportError:DLL load failed:找不到指定的模块原因:当前编译环境中缺失DLL文件解决方案下载相关的dll文件放到当前环境DLLs文件夹中(D:\ProgramData\Anaconda3\DLLs),例如:错误提示:from _sqlite3 import *找不到指定的模块到Sqlite的官网https://sqlite.org/...原创 2020-04-30 18:16:05 · 199 阅读 · 0 评论 -
Python Linux环境中多线程调用函数出错 无法调用函数
单独调用其他模块中函数正常多线程调用时显示other.py中:def f(x): return x*xmain.py中import otherimport multiprocessingdef go(): pool = multiprocessing.Pool(processes=4) print pool.map(f, range(10)...原创 2020-04-19 16:18:30 · 1093 阅读 · 0 评论 -
python 从字符串内取两个符号之间的内容 两个相同符号之间的内容
网上很多方法取两个不同符号之间的内容如果确定字符串里用相同符号(或字符串)分隔,怎么取相同符号(或字符串)之间的内容?import restr = "xxxxxxxxxxxxxxxxxxxxxxxx strat 'something' end aaaaaaaaaaaaaaaaaa" result = re.findall(".*strat(.*)end.*", str)for x i...原创 2020-04-18 16:43:08 · 9173 阅读 · 2 评论 -
Python groupby、grouper、resample函数使用进阶
背景:多品种、多时间点的数值,按品种、类型排序,取最近30个周期对多个特征值求和思路:1、现对时间排序,最后即最新数值2、按分组取出最新值3、按分组对value1、value2求和df = df.sort_values('time', ascending=True) # 升序排列,tail即最新值sum_df = df.groupby(['id', 'type']).tail(3...原创 2020-04-01 06:38:40 · 5567 阅读 · 0 评论 -
Python 多位数字写入CSV文件,避免科学计数法显示,超长数字,超大数字,精度保留
问题:多位数字直接写入CSV文件后,发现以下问题1、数字位数过多,excel打开显示科学计数法2、即使excel单元格格式为数字,发现最后几位被四舍五入,精度丢失解决思路:解决办法:数字改成字符串格式,字符串后加横向制表符’\t’再写入csvdataframe['id'] = str(dataframe['id']) + '\t' # 长数字后添加横向制表符dataframe.to...原创 2020-03-29 15:30:52 · 13199 阅读 · 4 评论 -
Python pandas 排序出现'DataFrame' object has no attribute 'sort'错误
目标:对dataframe一列时间字符串做升序排列,时间字符串格式:‘2020-03-23 06:20:00+00:00’df.sort(‘MTS’, ascending=True)运行提示:AttributeError:‘DataFrame’ object has no attribute ‘sort’原因:在python3中,sort是对于列表类型的排序函数,不支持DataFrame类...原创 2020-03-28 07:18:02 · 15735 阅读 · 0 评论 -
Python时间格式转换
一、标准库1、import timetime模块中时间表现的格式主要有三种:a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量b、struct_time时间元组,共有九个元素组。c、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。2、import datetimedatatime模块重新封...原创 2020-03-13 03:18:07 · 2446 阅读 · 1 评论 -
python3 '%Y-%m-%dT%H:%M:%S.000Z' 时间格式转换
从网页上爬到的时间格式为 '%Y-%m-%dT%H:%M:%S.000Z’字符串str需要转换成时间戳网上翻了半天,各种复杂,最后自己动手一行代码搞定:datetime.strptime(str, ‘%Y-%m-%dT%H:%M:%S.000Z’)...原创 2019-11-08 21:48:48 · 5969 阅读 · 2 评论 -
python3中input函数输入网址变直接打开
爬虫做了个交互,想用input()函数获取网址信息发现直接粘贴网址后回车,会直接打开网页,程序并不会直接运行手动输入网址后回车,程序继续运行小窍门:可以粘贴网址后,删除最后一个字母,然后输入再回车...原创 2019-03-21 00:06:00 · 2999 阅读 · 2 评论 -
Python3 read_csv()报错codeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0
Python3.x环境下,pd.read_csv()读csv文件时报错:UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xc8 in position 0: invalid continuation byte读取的目标文件是EXCEL文件直接另存为CSV文件,文件编码不是read_csv函数默认采用 utf-8 解码。解码方式。解决...原创 2019-03-23 18:53:36 · 2187 阅读 · 0 评论 -
Pandas中DateFrame修改列名
Pandas中DateFrame修改列名想改一个DataFrame的column名称,2种方法数据如下:import pandas as pda = pd.DataFrame({‘A’:[1,2,3], ‘B’:[4,5,6], ‘C’:[7,8,9]})aA B C0 1 4 71 2 5 82 3 6 9方法一:暴力方法a.column...转载 2019-03-23 19:05:29 · 276 阅读 · 0 评论 -
Python3 NaN+NaN等于0
Python2中sum()函数对于NaN+NaN计算结果为NaNPython3中sum()函数对于NaN+NaN计算结果为0如果需要在Python3中使用sum()函数,对于NaN+NaN计算结果为NaN,该怎么处理呢?Python3中sum()函数增加一个参数即可#python3中增加参数min_countmin_count=1表示多个数求和过程中至少有1个及以上非空数据,否则返回N...原创 2019-03-26 23:49:40 · 1124 阅读 · 0 评论 -
Python判断文件夹、文件是否存在,新增文件
使用os模块os模块中的os.path.exists()方法用于检验文件是否存在。判断文件是否存在import osos.path.exists(test_file.txt)#Trueos.path.exists(no_exist_file.txt)#False判断文件夹是否存在import osos.path.exists(test_dir)#Trueos.path.ex...原创 2019-03-31 21:19:12 · 2935 阅读 · 0 评论 -
Python3 writerow函数TypeError: a bytes-like object is required, not 'str'
with open(path, 'wb') as csv_file: csv_write = csv.writer(csv_file) csv_head = ["A", "B"] csv_write.writerow(csv_head)运行错误提示:TypeError: a bytes-like object is required, ...原创 2019-03-31 21:56:50 · 3353 阅读 · 2 评论 -
Python3判断变量为空值(NaN)
要判断某个变量x是否为空(nan、NaN、Null)import pandas as pdx pd.isnull(x)原创 2019-04-02 23:17:34 · 13124 阅读 · 0 评论 -
Python中用append()连接后多出一列Unnamed
pandas用append连接2个dataframe,总是多出一列Unnamed: Unnamed: 0 candle_begin_time 0 0.0 2019-01-01 00:00:001 1.0 2019-01-01 00:05:002 2.0 2019-01-01 00:10:0...原创 2019-04-21 21:38:06 · 2183 阅读 · 0 评论 -
python3.7 pandas读取包含中文内容的文件
python3.7: pandas读取包含中文内容的csv文件,跳出错误提示:UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xb2 in position 0: invalid start byte添加参数encoding = “gbk”或encoding = “gb18030”或encoding = “gb2312”-- co...原创 2019-04-22 21:11:06 · 1371 阅读 · 0 评论 -
Python3 dataframe数据多条件筛选错误The truth value of a Series is ambiguous
错误代码df = df[df['date'] >= pd.to_datetime('2010-01-01') and df['date'] <= pd.to_datetime('2019-01-01)]运行提示ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(),...原创 2019-05-01 17:06:44 · 7620 阅读 · 0 评论