当前位置: 首页 > 科技观察

精选14个PyCharm实用技巧

时间:2023-03-18 19:10:38 科技观察

今天主要介绍PyCharm的高效使用技巧!下面的代码演示是在Mac环境下,Windows类似。Command键相当于Windows上的Control键。1.代码排版,自动PEP8pep8是Python语言的代码编写规范。如果你是新手,只想快速掌握基础,不想太在意代码的写法(虽然这很重要),那么可以先试试这个工具——autopep8全局环境(不是在虚拟环境下安装),安装这个工具。sudopipinstallautopep8并在Pycharm中导入此工具。Name:AutoPep8Description:autopep8yourcodeProgram:autopep8Arguments:--in-place--aggressive--aggressive$FilePath$Workingdirectory:$ProjectFileDir$Outputfilters:$FILE_PATH$\:$LINE$\:$COLUMN$\:.*我随便写的一段不符合pep8规范的代码。右键,选择ExternalTools->AutoPep8看看效果,还是比较明显的。你可能会说Pycharm本身就有这个功能。快捷键Command+Option+L可以实现一键pep8。大家可以对比一下,Pycharm内置的代码pep8功能没有这个autopep8彻底。我相信你最终的选择一定是后者。2.误删文件,秒找回上周,由于自己的误操作,没有任何备份,将自己写了两周的项目删掉了。当我回头看时,我什至不记得我是什么时候删除的。作为一个老司机,当然是勇敢的打开回收站找了。几个月没清理的回收站,真是一团糟。各种jpg啊avi啊,不好看。一分钟快速浏览了一下,并没有找到我要找的那几个py文件。心想,应该是文件太多了,叉子坏了。由于项目是最近写的,文件名我还记得清清楚楚。由于有文件名,我用了windows自带的搜索功能,还是没有结果。我这才意识到事态的严重性。该文件可能是真实的。“走了”。好久没清理回收站了。为什么回收站里没有文件?我认为这可能是一次不寻常的删除。会不会是Pycharm中发起的删除操作,没有进入回收站?它丢失在哪里?经过一番测试,确实在回收站找不到,不过这次尝试也无意中发现了Pycharm的一个隐藏功能,LocalHistory,它会将你所有的操作记录保存在文件中。以我刚才测试的文件为例。我首先创建了一个新文件,然后在这个文件中添加了几行代码。最后我删除了这个文件。此时,你可以在你的项目目录中右击,有一个LocalHistory的选项,然后点击子选项ShowHistory,可以看到这里有一个记录板。如果要恢复被删除的文件,在被删除的记录项上单击鼠标右键,选择“恢复”即可恢复。3.拥抱Vim,远离鼠标在大多数场景下,使用鼠标的效率和精准度远不如键盘快捷键(前提是你已经相当熟练地掌握了快捷键),这一点你不得不承认。Vi可以满足您对文本操作的所有需求,并且比可视化界面更加高效和极客。如果你和我一样,那么你就是一个忠实的vim粉丝。安装好Pycharm之后,我们肯定会第一时间安装ideaVim插件,这样我们就可以使用vim在Pycharm中编辑代码了。安装方法如下。安装完成后需要重启Pycharm才能生效。4.代码模板,高效编码Pycharm提供的这个代码模板可以说是一个非常实用的功能。它可以在你新建文件时,根据你预设的模板,为你生成一段内容,比如解释器路径、编码方式、作者详情等。根据上面的模板,生成的效果如下。除了在新建文件时初始化文件,在开发和编写代码时,还可以使用Pycharm自带的实用代码模板来提高自己的编码效率。当你在键盘上输入Command+J时,可以调出一个面板,从下图可以看出,里面有很多预设的模板。如果我们要选择最后一个main,我们可以继续输入main,然后就可以直接生成下面我们平时手动输入的代码了。再举个例子,for循环可以这样写。5.使用书签快速定位。我在看框架源码的时候,最常用的是Command+B(即command+鼠标左键)逐层深入,但是当源码很多的时候,整个事件过程可能会涉及到更多十几个文件,函数调用错综复杂。对于一个巨大的项目,可能只有几个关键功能是有用的。每次要找这些函数,都得从源函数开始一层层找,层层找太麻烦了,常常因此头晕目眩。直到后来发现了Pycharm的书签功能。使用书签功能,我可以在关键位置放一个书签,想看的时候调用书签,快速定位。使用它需要记住以下快捷键Command+F11收藏Shift+F11显示所有书签F11删除你要收藏的位置的书签(测试只在Windows下有效),按Command+F11,就可以在此位置添加序号,可以是数字也可以是字母。如果在下面的位置加上序号1,下次可以用Control+1直接跳转到这个位置。当然你也可以不加,不加就是匿名书签。可以用Shift+F11显示所有书签,然后跳转。6.神一般的调试技巧如果我们在爬虫项目中,我们会使用正则表达式来匹配我们要抓取的内容。正常来说,这种事情有多少人可以一步完成,通常需要调试很多次才能符合预期。我们改了一次regex跑了之后,又需要从网站上抓取request,发现没有匹配,然后换了version,同样需要发起request再跑一次,但是还是发现还是匹配不上,经常重复,规律性差的同学可能要尝试几十次。(上面的例子可能不太合适,毕竟实现不需要重发请求的方式有很多,只是罗列了一个非常笨拙低效的调试过程,看看就好)在调试中,发出请求对同一个网站是毫无意义的重复性工作。如果在Pycharm中,像IPythonShell和JupyterNotebook一样,运行后可以记住所有的变量信息,不需要重新运行项目或脚本,只需要稍微调整一下我们的代码,就可以直接进行正则调试。答案当然是肯定的。假设我正在调试以下简单的代码行。在第3行设置断点。然后在图中所示位置单击ShowPythonPrompt按钮。进入PythonShell界面。这个shell环境与我们当前运行的程序环境相连,使用相同的命名空间。现在您可以轻松调试。为了方便说明这种效果,我们在上面打了个断点。并不是说它必须被打断。如果没有断点,脚本执行后仍然可以在这个界面上查看和操作所有变量。现在可以满足我们的调试需求了,但是每次运行脚本都要手动点击ShowPythonPrompt,有点麻烦。嗯?其实有个地方可以设置默认打开。这个开头比较隐秘,一般人还真是找不到。您需要单击图标位置编辑配置。然后在这里检查。设置好后,每次运行postscript,它都会默认为你存储所有变量的值,并为你打开控制台命令行调试界面。除了上述方法之外,其实还有一种在调试时执行命令表达式的方法,这种方法大家可能比较熟悉,这里提一下作为总结。但在功能上,不如上述方法方便易用。由于这种方法,必须要求您在带有断点的调试模式下运行项目。使用方法是,打断点后,右击图中所示位置,使用EvaluateExpression弹出EvaluateExpression窗口,可以运行命令表达式,直接操作变量。7.执行带有指定参数的脚本。你在Pycharm中运行你的项目。你通常如何执行它?我的方法是右击,然后点击运行,或者使用快捷键Shift+F10。有时,在运行/调试脚本时,我们需要指定一些参数,可以直接在命令行指定。假设在命令行中,运行脚本的命令是pythonmain.pyinit--local对于刚刚使用Pycharm的同学,可能不知道Pycharm也可以指定参数。点击下图位置进入设置面板,在Scriptparameters中填写参数。同时,在上图的底部,可以看到这里切换解释器非常方便,比这里运行要容易的多。8、搜索时过滤测试文件接下来介绍一个,让我看看框架源码一个当时的小技巧可能只适用于一小部分人。我通常看的框架是OpenStack。不知道其他框架怎么样,但是OpenStack里面有很多(真的很多)单元测试文件。这给我在使用FindinPath时带来了很大的麻烦。大家可以从下图的搜索结果中感受一下。搜索函数时,测试文件中的结果比普通文件中的多很多。这些测试文件的搜索结果,不仅对我们看源码没有帮助,更重要的是还干扰了视线。于是研究了一下,从文件名开始,只要在Filemask中填入!test*就可以过滤掉这些测试文件了。搜索结果一下子就清晰多了。9.关闭烦人的灯泡提示。本来没打算写这个的,知乎上有个朋友有这个需求,于是研究了一下。先说说这个灯泡提示是什么,有什么用?当我们的代码出现语法错误,或者代码不符合pep8代码规范时,鼠标选中有问题的代码,小灯泡就会自动弹出。这个灯泡有不同的颜色。如果是红色灯泡,一般是语法问题。如果不处理,会影响代码的运行。而如果是黄色的灯泡,只是提示代码不规范等,不会影响程序的运行。这个灯泡虽然是好心之举,但我觉得有点多余(可能我个人没有使用的习惯),而且有语法错误就会出现红色波浪线。你可能会说,灯泡不仅可以起到提醒的作用,还可以自动纠正代码。个人感觉没有人工校正那么高效准确。基于有的时候就像知乎这位朋友说的,我们的代码会被屏蔽,经常会耽误时间。这确实是一个烦恼。研究了一下,Pycharm(2018版)中有一个切换按钮。取消勾选下图中的选项(Showintentionbulb)即可关闭该功能。10.关闭难看的波浪线。让我先给出一个小代码示例。想一想,为什么name和my_name没有波浪线,而myname和wangbm却有波浪线?Pycharm本身会实时检查变量名Check,如果变量名不是已有的英文单词,会出现波浪线。当一个变量中有多个单词时,Python推荐使用下划线分隔(其他语言可能习惯使用驼峰命名法),但Python使用下划线),所以在Pycharm看来,my_name是规范的,myname会被视为一个词。由于词库中没有,所以myname不规范。每个人的变量命名习惯都不一样。如果你的项目中使用了很多myname风格的变量命名方式,像下面这样(随便找了一段cloudinit的代码),还是挺难受的。总有一段代码有bug的错觉。那么如何关闭这条非语法级别的波浪线呢?很简单,它的开关就在你右下角头像一样的按钮里面,然后选择Syntax级别。同样的一段代码,效果如下,干净多了。11、一键式代码性能分析Python中有很多模块可以帮助你分析和找出项目中出现性能问题的地方。比如常用的模块是cProfile,在一些框架中,也有内置的中间件帮你进行性能分析,比如Django、WSGI。作为Python的第一个IDE,PyCharm本身就支持这个特性。而且用起来很方便,小白。假设现在分析以下代码的性能损失,找出哪个函数花费的时间最多importtimedeffun1():time.sleep(1)deffun2():time.sleep(1)deffun3():time.sleep(2)deffun4():time.sleep(1)deffun5():time.sleep(1)fun4()fun1()fun2()fun3()fun5()ClickRun->Profile'Program'执行性能分析。运行后会自动弹出性能统计界面。性能统计界面由Name、CallCount、Time(ms)、OwnTime(ms)组成,4列组成一个表格,如下图所示。headerName显示被调用的模块或函数;CallCount显示来电次数;Time(ms)显示运行时间和时间百分比,时间单位为毫秒(ms)。单击表格标题上的小三角形可按升序或降序对表格进行排序。双击名称列中的一行可跳转到相应的代码。以fun4这一行为例:fun4被调用一次,运行时间为1000ms,占整个运行时间的16.7%。如下图。左上角4个按钮分别表示放大、缩小、实际尺寸、适当尺寸;箭头表示调用关系,从调用者到被调用者;矩形的左上角显示模块或函数的名称,右上角显示调用次数;长方形中间显示运行时间和时间百分比;矩形的颜色表示运行时间或时间百分比的趋势:红色>黄绿色>绿色。从图中可以看出,fun3的矩形是黄绿色的,fun1是绿色的,所有fun3的运行时间都比fun1短。长的。从图中可以看出,Test.py直接调用了fun3、fun1、fun2、fun5函数;fun5函数直接调用fun4函数;fun1、fun2、fun3、fun4、fun5都是直接调用print和sleep函数;整个测试代码总运行时间为6006ms,其中fun3的运行时间为1999ms,占总时间的33.3%,即1999ms/6006ms=33.3%。12.使用Git进行版本控制。按照下面的提示点击Git仓库配置,然后输入仓库地址点击测试即可测试连通性。系统将要求您输入密码。如果一切顺利,你会看到如下界面。测试连接成功后,点击克隆,将其克隆上去。对于以前使用Git命令来管理的人来说,现在可以直接使用PyCharm的菜单栏来操作了。这些功能已经可以满足大部分人的日常需求,应该够用了。13.轻松将制表符转换为空格在团队合作中,你不可避免地会接触到其他人编辑的文件。有的人喜欢做制表符来缩进,有的人喜欢用四个空格来缩进。(个人推荐使用tab转换为四空格)但是在同一个Python文件模块中,tab和四空格缩进这两种风格是不能共存的。这就需要你按照文件原来的缩进风格来编码。在Pycharm中可以设置自动检测原文件的缩进样式,判断使用tab键缩进时是TAB还是四个空格。勾选图标以启用自动检测。以上是在对旧的Python模块进行更改时如何确定当前编辑的缩进。至于新模块,默认的缩进方式是如何确定的?如下图,如果勾选Usetabcharacter,那么新建Python后,会使用TAB缩进,否则使用四个空格缩进。缩进。14.源码文档,快速预览Ctrl+鼠标左键(Mac:Command+鼠标左键),可以实现功能跳转查看源码,这是几乎每个PyCharmer都会知道的常用技巧。这里还有另外两个类似的技巧,快速查看功能文档和预览源码。函数开头三个引号"包含的内容称为函数文档(DocString)。写代码的时候,顺便写一下函数的接口文档是一个很好的编码习惯。它介绍了参数函数的类型和描述,返回值类型和例子,如果写的好的话还会写几个简单的ExampleUsage帮助理解和使用,这里有一个Werkzeug的例子,如果我们用这个类,忘了这个用法之后,你可以按住Ctrl+q(Mac的快捷键还没找到),可以在当前页面快速预览LocalStack的接口文档。同理,如果你对这个类的代码逻辑感兴趣或者函数,也可以使用快速预览在当前页面显示源码,快捷键为:Ctrl+shift+i(Mac:Command+shift+i)效果如下如果有多个函数同PyCharm检测到相同的名字,你可以点击此处切换选择查看这两个快捷键比使用Ctrl+鼠标左键跳转到源代码更方便。就像微信小程序一样,用完即刻,不会新建标签页,也不需要来回跳转到页面。以上就是今天的分享,希望大家喜欢。