自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 收藏
  • 关注

原创 Mac解决JAVA_HOME问题

安装使用jadx时Mac下JAVA_HOME环境变量问题

2022-07-08 21:18:28 4693 1

原创 Wxpython 定时执行函数CallLater

在wxpython中如果想每隔几秒执行一个函数,用time.sleep是非常不好用的,因为这个线程会被占用,其他操作难以执行。这时我们要用wx.CallLater()class Frame(wx.Frame): def __init__(self): ... self.on_timer() def on_timer(self): self.text.SetLabel(str(random.randint(0, 100)))

2022-03-08 09:48:53 740

原创 Jira Sprit冲刺更改开始日期时出现 “18/Oct/21 10:38 AM”不是有效日期。请按下列格式输入日期:dd/MMM/yy h:mm a错误

在创建冲刺时出现标题里的错误时,首先可在设置中将语言改为英语。如果不行的话检查System > Look and feel和System > General configuration > Advanced Settings这两个地方的时间格式是否一致,更改为一致即可解决问题这里有更改时间格式的参考...

2021-12-31 12:08:00 832

原创 pywintypes.com_error: (-2147221008, ‘CoInitialize has not been called.‘, None, None)

在使用xlwings多线程时,出现这样的报错,导致Excel表无法打开,是多线程调用的问题。解决方法:import pythoncom# 在这个线程的函数开始运行之前调用这句即可def daily_report(): pythoncom.CoInitialize() # 加入这句 app = xw.App(visible=True, add_book=False) app.display_alerts = False app.screen_updating = T

2021-12-20 10:30:28 2014 2

原创 Wxpython textctrl索引位置错乱,换行符问题

在Textctrl中输入带有换行的文本,通过自定义的搜索函数,会出现索引错误的问题,以下是我的原来的代码def search_text(self, event): print('搜索文本!') keyword = event.GetString() if keyword == self.pre_keyword: if self.pre_search_selection == len(self.search_result)-1: self.pr

2021-12-18 11:01:17 618

原创 python re.finditer匹配不到一些符号

使用re.finditer时,会有一些比如*这样的符号搜索不到结果,这是因为pattern里的字符是不可搜索的,比如 *、$、^。有关re.finditer的详细内容可以看菜鸟教程

2021-12-18 10:20:56 1137

原创 Typora导出时换行及空格缺失

打开偏好设置,Markdown->空行与换行,导出与打印中选择保留空格与换行

2021-12-16 13:13:16 1604

原创 python zipfile打包文件夹

如果我们直接使用文件夹的绝对路径作为target,我们最后打包的是一个空的文件夹,因此我们需要使用os.walk,在write时再附上文件夹层级即可import os,zipfilezipname = 'filename.zip'print('已将日志数据打包为'+zipname)with zipfile.ZipFile(zipname, 'w', zipfile.ZIP_STORED) as f: for i in os.walk('contents'): for n in i

2021-12-15 13:05:24 1360 1

原创 使用钉钉Api 向企业群发送文件 python

由于钉钉群机器人推送消息类型只支持text,link,markdown等形式,因此我们需要使用钉钉的接口来实现媒体文件的发送。目录获取身份验证参数上传媒体文件发送消息获取chatid注意事项获取身份验证参数钉钉开放文档中可以看到我们上传媒体文件需要1个参数:access_token,这个token是俩小时变一次的,因此我们需要用代码去每次获取新的access_token。在开发者平台创建一个H5应用,可以在详情里看到appkey和appsecret,用这两个把下面的参数填上def getAcces

2021-12-15 11:43:22 3397

原创 Mac更新Moterey后Alfred无法使用有道词典workflow

在Monterey版本里,系统删除了自带的php,我们需要使用Alfred4.6以后的版本(支持brew自行安装的php)首先安装homebrew更新一下brew update然后添加PHP库brew tap homebrew/dupesbrew tap homebrew/versionsbrew tap homebrew/homebrew-php最后安装phpbrew install php大功告成,workflow可以正常使用了...

2021-12-13 11:36:16 1593 2

原创 collections.defaultdict()将键-值对序列转换为列表字典

当我们通过键访问字典,如果键不存在将会返回KeyError错误,如何避免这种错误?需要使用collections.defaultdict()。它重写了方法_missing_(key),增加了一个可写的实例变量default_factory,实例变量default_factory被missing()方法使用,如果该变量存在,则用以初始化构造器,如果没有,则为None。其它的功能和dict一样。第一个参数为default_factory属性提供初始值,默认为None;其余参数包括关键字参数(keyword

2021-12-08 18:01:06 425

原创 Wxpython转移键盘焦点至某一控件

比如当我们新建了一个Textctrl控件后text = wx.TextCtrl(self.scrolled_panel, value='', size=(self.text_w, self.text_h),pos=(X, Y))我们想直接把光标移动到这个输入框里,使用父类Window的方法SetFocus()即可text.SetFocus()...

2021-12-07 16:48:39 346

原创 Wxpython 解决控件不按布局设定

记录一个小问题的解决下午有一个按钮一直不按设定位置显示,直到后来发现了问题所在,就是Add的时候没有设定proportion的参数原代码:self.btn_sizer.Add(btn, wx.EXPAND | wx.TOP, 40)我发现窗口大小变动的时候按钮位置还会随之等比例改变,我就发现一定是proportion这块的问题,仔细一检查,这里少了个0改为如下,按钮位置回归正常self.btn_sizer.Add(btn,0, wx.EXPAND | wx.TOP, 40)...

2021-12-06 19:21:43 179

原创 Wxpython 让页面自动滑到底部

一个垂直方向上滑动的页面,使用如下代码,GetClientSize获取的是页面的大小self.scrolled_panel.Scroll(0,self.GetClientSize()[1])值得注意的一点是,如果有self.scrolled_panel.SetupScrolling()这行代码,一定要在里面加上scrollToTop=False,否则会使页面一直卡在顶部self.scrolled_panel.SetupScrolling(scrollToTop=False)...

2021-12-06 18:43:58 231

原创 Wxpython更改Button位置,事件获得按钮位置

在Button的父类wx.Window()中使用Move方法button.Move(100, 200)# 将button移动到(100,200)位置使用event.GetEventObject可以获得button这个控件使用GetPosition()可以获取其位置button = event.GetEventObject()print(button.GetPosition())# 打印button所在位置(X,Y)...

2021-12-06 13:45:29 1116

原创 Wxpython更改CoboBox下拉选项

用wx.ComboBox()创建一个下拉框,怎么更新里面的Choices?ComboBox(parent, id=ID_ANY, value="", pos=DefaultPosition,size=DefaultSize, choices=[], style=0, validator=DefaultValidator,name=ComboBoxNameStr)在网上查了很久,终于找到,应该使用SetItems()方法,在wx.ItemContainer这个父类里面self.combo.Set

2021-12-02 19:05:53 974 2

原创 wxpython搜索功能wx.SearchCtrl

先创建搜索框,这里的wx.TE_PROCESS_ENTER会使搜索框接收回车事件,self.search = wx.SearchCtrl(self.right_board, -1, style=wx.TE_PROCESS_ENTER,size=(130,-1))self.search.SetHint('Search') # 设置HintBind一下回车和执行的操作函数self.search_text()self.Bind(wx.EVT_SEARCHCTRL_SEARCH_BTN,self.sea

2021-11-30 13:45:14 781

原创 python字符串中所有符合条件的索引

使用re库中的finditerimport res = '1111ah11111ah'test = re.finditer('ah',s)print([i for i in test])# [<re.Match object; span=(4, 6), match='ah'>,<re.Match object; span=(11, 13), match='ah'>]i.span()就可以直接获得索引

2021-11-29 17:00:38 413

原创 wxpython输入文本框,预设灰色文本

wx.TE_LEFT:左对齐wx.TE_MULTILINE:多行文本框,自己会生成滑动条self.text = wx.TextCtrl(self.right_board, -1, size=(820, 400), style=wx.TE_LEFT | wx.TE_NOHIDESEL | wx.TE_MULTILINE)然后设置预设提示文本# 现将字体颜色设置为浅灰色self.text.SetDefaultStyle(wx.TextAttr(wx.LIGHT_GREY))# 然后添加提示文本s

2021-11-29 11:15:00 702

原创 wxpython 分割窗口SplitterWindow并让窗口跟随窗口大小

直接上代码了def OperationInterface(self): # 创建一个可分割窗口 self.split_mult = wx.SplitterWindow(self, style=wx.SP_LIVE_UPDATE, size=self.Size) # 先定义左侧按钮面板 self.left_button = wx.Panel(self.split_mult,size=(150,self.split_mult.Size[1]),style=wx.SIMPLE_BORD

2021-11-29 10:15:00 688

原创 python将终端的错误提示打印输出到txt文件

在脚本的开头加入下面的代码,可以将错误输出重定向至errorlog文本中__stderr__ = sys.stderr #将当前默认的错误输出结果保存为__stderr__# __stdout__ = sys.stdout 标准输出就用这行# sys.stdout = open('log.txt', 'a')sys.stderr = open('errorlog.txt', 'a') #将后续的报错信息写入对应的文件中如果用try;except就不会输出

2021-11-22 10:54:42 3317

原创 xlwings显示某个打开的Excel工作簿

使用xw.books就可以显示现在打开的所有Excel表xw.books# Books([<Book [Book1]>, <Book [Book2]>])xw.apps[10559].books # specific app, get the PIDs via xw.apps.keys()# Books([<Book [Book1]>, <Book [Book2]>])activate可以切换操作焦点到Excel上,steal_focus默认为F

2021-11-22 10:00:00 1299

原创 Wxpython在一个Frame中更改另一个Frame的值

一般我们都是在一个Frame显示的时候用self去更改一些窗口上的元素,那么如何在一个Frame显示的时候去改变另一个Frame中的数据呢?我们可以创建一个GuiManager()类,用以储存Frame,以便后续调用。class GuiManager(): def __init__(self, ): self.frameDict = {} # 用来装载已经创建的Frame对象 def addframe(self, id, frame): self.fr

2021-11-19 16:37:37 253

原创 Wxpython设置窗口最小尺寸

使用SetMinSize(self,size)class GuageFrame(wx.Frame): def __init__(self, *args, **kw): # ensure the parent's __init__ is called super(GuageFrame, self).__init__(*args, **kw) self.SetMinSize((400,200)) # 设置最小尺寸这里就是将最小尺寸设置为(400,2

2021-11-18 12:37:15 813

原创 Wxpython中多线程任务的平滑进度条设置

首先是进度条的设置class GuageFrame(wx.Frame): def __init__(self, *args, **kw): # ensure the parent's __init__ is called super(GuageFrame, self).__init__(*args, **kw) panel = wx.Panel(self, -1) vbox = wx.BoxSizer(wx.VERTICAL)

2021-11-17 18:20:38 438

原创 wxpython wx.Destroy()和wx.Close()区别

在官方文档中有这样一段描述Note that calling Close does not guarantee that the window will be destroyed; but it provides a way to simulate a manual close of a window, which may or may not be implemented by destroying the window.意思是Close()不保证窗口被关闭,但是它提供了一种模拟用户手动关闭窗口的

2021-11-16 10:27:23 859

原创 wxpython多线程,可解决进度条在程序后台运行时不动的情况

在前面先定义myThread类import threadingclass myThread(threading.Thread): def __init__(self, command): threading.Thread.__init__(self) self.cmd = command def run(self): print"Starting" + self.cmd os.system(self.cmd)

2021-11-15 13:44:15 356

原创 wxpython Frame子窗口Show()之后却没有出现,代码不按照顺序执行。多线程解决

这两天遇到一个难题,研究了一天都没有解决,最后还是在Stack Overflow上找到了答案。问题描述# 初始状态frame = GuageFrame(parent=self, id=-1, title='自动化填写', size=(400, 200))frame.Show()time.sleep(2)# 完成状态frame.gauge.SetValue(100)frame.info.SetLabelText('完成!')这段代码本意是让进度条从窗口显示,然后过2秒后进度条走完,文字

2021-11-15 11:48:10 615

原创 wxpython使用gauge创建进条度

class GuageFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, 'Gauge Example', size = (400, 200)) panel = wx.Panel(self, -1) vbox = wx.BoxSizer(wx.VERTICAL) hbox1 = wx.BoxSizer(wx.HORIZONTAL)

2021-11-12 18:41:09 519

转载 Python设置打印文本颜色

在做测试时可以更清晰的去读输出# Python设置文本文字颜色class bcolors: HEADER = '\033[95m' # pink OKBLUE = '\033[94m' # blue OKGREEN = '\033[92m' # green WARNING = '\033[93m' # yellow FAIL = '\033[91m' # red ENDC = '\033[0m'

2021-11-03 13:35:21 1544

原创 xlwings写入一列数据

方法一如果不加入options(transpose=True)会默认从A4格开始向右赋值,transpose转置了一下sht.range('A4').options(transpose=True).value = [1,2]方法二不加transpose也可以,列表做一下处理即可sht.range('A4').value = [[1],[2]]...

2021-11-03 12:34:49 2284

原创 xlwings 在mac上使用api出现错误

app = App(visible = False, add_book = False)wb = app.books.open('Book1.xlsx')sht = wb.sheets[0]print(sht.range('A1').api.Font.Size) # 问题在这一行错误提示:AttributeError: Unknown property, element or command: 'Font'网上很少有提及这个问题的,这是因为mac系统的错误,这个代码仅适用于windows系统

2021-10-30 12:24:08 1303

原创 python去除小数点后无用的0

如果数据是有可能带小数的,但是如果是整数就不想显示小数点,如何实现例:输入:10.1, 10.0,10.200输出:10.1, 10, 10.2使用format方法对字符串进行格式化for i in [ 12.12300 , 12.00 , 200.12000 , 200.0 ]: print('{:g}'.format (i))输出:12.12312200.12200...

2021-10-27 13:07:48 5370 2

原创 xlwings时间格式单元格更改数据

需求:每天把当天日期的九点钟放到单元格里首先time.localtime获取当天日期import timelocaltime = time.localtime(time.time())然后用datetime把格式转变一下填入单元格,这样单元格的显示格式也不会变,如果原先是年月日还是会显示年月日的格式sht.range('L30').value = datetime.datetime(localtime.tm_year, localtime.tm_mon, localtime.tm_mday,9

2021-10-26 12:36:56 1390

原创 pyinstaller打包后无法获取当前路径

在代码中需要获取当前路径下的文件,本来用的是下面的代码,在pycharm下一切正常path = sys.path[0]可是打包后直接报错,类似于下面这样ERROR: Can not find path /usr/lib/libSystem.B.dylib (needed by /Users/yao/opt/anaconda3/envs/DailyReport/bin/python3.7)在网上一番查找后将代码改为path = os.getcwd()打包正常了,也可以运行,只是路径只能获取到

2021-10-23 11:41:41 1621 1

原创 xlwings使excel批量自适应宽高

我们都知道,双击excel列/行的分界线就可以使之自适应宽高,那么如何批量操作呢这里我们使用xlwings这个python库,经过对比,这个库比xlwt等功能全面一些。官方文档在这里sht.range('I4:I10').rows.autofit()这行代码的意思就是I4:I10范围的单元格高度自适应,使用autofit()即可如果想要宽度自适应,rows换成columns...

2021-10-21 17:27:55 3810

原创 wxpython 状态栏StatusBar导致布局错乱问题

在窗口中加了个状态栏后,在切换页面时就出现了格式错乱的问题。具体为从首页进入查看学生信息页面时,会覆盖左边操作按钮部分解决方法:回头看代码class UserOperation(wx.Frame): ''' 操作界面 ''' def __init__(self, *args, **kw): # ensure the parent's __init__ is called super(UserOperation, self).__in

2021-10-15 12:24:55 359

原创 Wxpython Bind增加传参

对于一般的Bind形式是不能带参数的,比如有一个按钮Button一个回处理函数OnButton(),点击Button触发OnButton()函数self.Bind(wx.EVT_BUTTON, self.OnButton, self.Button)如果我们想给OnButton()传入额外的参数,比如一个导出excel一个导出csv。但是又不想写两个函数怎么办(完全可以写两个只有一小部分不同的OnButton(),但是十分不简洁)这时可以加入一个列表循环,列表里是要传的不同参数,每次都新定义一个cal

2021-10-14 12:30:58 775

原创 wxpython菜单界面从mysql导出excel/csv

目录导出函数数据库创建菜单控件导出函数这里使用的是wx.FileDialog,style=wx.FD_SAVE是自带的保存用的内置。值得注意的一点是workbook = xlsxwriter.Workbook(pathname)这里一定要用完整路径,如果只是用文件名,最后也能看见导出文件,只不过会是空白文件。 def export_excel(self, event): op = Sql_operation("login_users") np, fields =

2021-10-14 10:50:13 262

原创 Python 中的super()

如果有一个子类继承了父类,在子类中定义了一个与父类同名的方法会覆盖父类中的方法,使用super()函数可以实现保留父类方法的功能,或者在其基础上再添加功能。举例:# 父类class animal(object): def __init__(self,name): print('I\'m ' + name)# 子类 class cat(animal): def __init__(self,name): super().__init__(name

2021-10-12 12:43:08 65

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除