在本节中,您将了解Spyder的更高级功能,并浏览大多数窗格。
探索如何利用Spyder的功能,而不仅仅是四个核心窗格。
使用绘图窗格查看、管理和保存地物
在文件窗格的中浏览、交互和打开外部程序
使用大纲窗格在文件内和文件之间快速导航
使用查找窗格在整个项目中搜索文本或正则表达式
在联机帮助窗格中查找和浏览结构化文档
大家好!我是Juanita,我将向您展示如何使用Spyder中仅有的四个主要窗格之外的一些剩余窗格。
让我们从Plot窗格开始,该窗格在启动Spyder时默认处于打开状态。要了解它是如何工作的,让我们打开一个文件,该文件将从Matplotlib的文档中生成几个绘图。您可以在Plots窗格中查看生成的绘图,并使用箭头在它们之间进行浏览,或者只需在侧边栏中单击它们即可。
如果打开窗格的选项菜单,您将看到默认情况下启用了Fit Plot to Window(适合绘图到窗口)。禁用它将允许您放大或缩小打印。您还可以看到,静音内联打印已启用,这将防止相同的图形也出现在IPython控制台中。请注意,每次运行代码时,窗格中都会生成绘图的新副本,但是您可以使用窗格工具栏中的X按钮删除任何不想保留的副本。此外,当您在每个控制台之间切换时,窗格会自动更新以显示每个控制台生成的绘图。
要在其他文档中使用绘图,请单击“复制到剪贴板”按钮,然后将其粘贴到您想要的任何位置,例如文字处理器。此外,您还可以通过单击保存图标将绘图另存为PNG。
默认情况下也是打开的“文件”窗格允许您浏览计算机上目录的内容,在编辑器中打开它们,以及执行各种其他文件操作。您可以在窗格的选项菜单中显示或隐藏文件的大小、类型和日期。当您更改窗格中正在查看的顶级文件夹时,主工具栏右上角显示的Spyder工作目录将更新,该目录也将与当前活动的控制台同步。双击文本文件将在编辑器中打开它,复制一个或多个文件将允许您将其粘贴为自动格式化的绝对或相对路径。右键单击任何项目将提供一组用于与其交互的附加选项。
您还可以在系统默认的外部应用程序中打开文件,或在文件首选项窗格的文件关联选项卡中设置自定义文件关联。例如,我们可以将 .csv 扩展名,并将其与关联应用程序下的LibreOffice Calc关联。现在,每次您单击具有此扩展名的文件时,它都会使用此程序从外部打开。
.csv
现在,让我们看看如何使用大纲窗格在文件中导航。首先,我们必须打开“视图”菜单中“窗格”下的窗格,因为默认情况下它是不可见的。如您所见,它显示了当前定义的所有类、方法和函数,并允许您只需单击一下即可在它们之间移动。对于像这样一个非常大的文件,轻松地在类之间切换而不是在4000多行代码之间滚动是非常有用的。您还可以通过使用箭头或大纲窗格工具栏中的按钮展开类来浏览该类的方法。大纲不断更新以突出显示与代码中光标位置对应的函数、方法或类,因此您可以轻松跟踪正在处理的对象。最后,通过转到窗格的Options菜单并激活Show all files,您可以轻松地在已打开的脚本和模块之间切换,这对于导航较大的项目特别重要。
对于特别大型的项目,“文件”窗格是另一个有用的工具。与大纲窗格一样,它可以在“视图”菜单的“窗格”下打开。这使您可以查看和浏览工作目录、项目或其他自定义目录中的任何文件中出现的所有文本或正则表达式。我们可以看到,例如,在 mainwindow.py 文件中,导入``is_Dark_FONT_Color``函数。如果我们想要快速找到定义文件的位置,可以将此字符串写入搜索栏。使用此搜索,我们从3个不同的文件中获得7个匹配项。当我们单击这些匹配项中的任何一个时,该文件将在编辑器中自动打开,就在该字符串出现的位置。
mainwindow.py
最后,我们将学习如何使用联机帮助窗格浏览文档。一旦您打开它,同样在View菜单的窗格下,您将看到一个模块索引,可从中获得文档,包括Python标准库中的模块和可能安装在Spyder环境中的任何第三方软件包。例如,我们可以找到Numpy、Pandas和Matplotlib的帮助,如果您下载了Spyder和 Python ,它们都会安装。您可以在窗格提供的内置Web浏览器中浏览内容,然后单击其中的超链接以导航到不同的页面。您还可以在Get字段或窗格工具栏上方的空白处输入要记录的项目的名称,以便直接加载其信息。如果您不确定对象的名称,请使用搜索字段查看适用于任何关键字的结果列表。
现在您已经熟悉了更广泛的Spyder窗格和功能,您可以轻松地完成各种常见的编程任务。请继续关注我们的下一个视频,它将进一步添加到您的科学工具箱中,并一如既往地为您带来快乐间谍!
了解如何使用代码分析提高程序质量。
打开并使用代码分析评估Python文件的质量和样式
在编辑器中或计算机上的任何位置对文件运行分析
确定错误、警告或消息的含义以及修复方法
在行、文件或全局关闭邮件
大家好!我是Juanita,在这段视频中,我们将学习如何使用代码分析窗格提高代码质量。要显示它,我们可以在“视图”菜单中的“窗格”下单击它的名称。
此窗格可检测代码中的样式问题、不良做法、潜在错误和其他质量问题,而无需执行。有三种运行代码分析的方式:
要分析在编辑器中打开的文件,我们可以按可配置快捷键。 F8 默认情况下,或者从菜单栏中选择Source-->run code analysis。
我们还可以通过使用路径框旁边的文件按钮浏览来选择要分析的文件。这将自动开始分析。
第三种方法是在窗格工具栏的路径输入框中手动输入我们要检查的文件的路径,然后单击窗格中的Analyze按钮。
基于这些结果,代码分析显示总体得分为4.34/10,这允许我们跟踪代码质量的改进。我们还可以展开或折叠窗格中的一个或所有部分,以便能够看到标识代码问题的Pylint错误、警告和消息。
例如,结果告诉我们第20行有一个警告。要在编辑器中直接转到此行,只需单击该消息。在这里,代码分析表明有一个 bad-whitespace 问题。要了解这意味着什么,请打开Pylint文档。在 Pylint docs page ,单击Pylint Feature并搜索邮件代码。
bad-whitespace
我们可以看到,文档显示我们在操作符周围使用了错误数量的空格。
bad-whitespace [C0326]: %s space %s %s %s Used when a wrong number of spaces is used around an operator, bracket or block opener.
我们可以通过在此变量赋值中的运算符前后添加一个空格来修复错误。如果我们再次运行分析,我们可以看到错误不再显示在该行上。
我们可以单击“文件名”(FileName)字段中的下拉箭头来查看以前的分析列表。单击其中一个将向我们显示结果。
有时,关闭某些消息很有用。我们可以通过三种不同的方式做到这一点。
我们可能只想使一行上的警告静默;例如,这个“未使用”的导入仍然是代码执行所必需的。为此,请键入 # pylint: disable=unused-import 作为行尾的注释。再次运行分析将显示错误不再可见。
# pylint: disable=unused-import
如果我们想要使整个文件中的消息静默,可以通过在文件开头编写禁用命令来实现。例如,我们可以禁用 invalid-name 在此文件中多次出现的警告。如果我们再次运行分析,所有这些警告都会消失。
invalid-name
最后,我们可以通过编辑 .pylintrc 用户文件夹中的配置文件。如果它不存在,我们可以通过打开我们的终端来生成它,或者如果您使用的是Windows,则可以通过运行Anaconda提示符来生成它 pylint --generate-rc > .pylintrc 在我们的用户目录中。
.pylintrc
pylint --generate-rc > .pylintrc
现在,我们可以去 MESSAGE CONTROL 部分,并添加相应的Pylint消息名称,例如 no-name-in-module 。如果我们再运行一次分析,我们会看到 no-name-in-module 警告不再出现。
MESSAGE CONTROL
no-name-in-module
我们可以看到,我们的档案分数提高到了7.63/10,比之前的4.34有了很大的提高。
既然我们已经了解了如何提高代码质量,您就可以使用Spyder编写更干净、更正确的程序了。请继续关注我们的下一个视频,并一如既往地关注“谍战快乐”!
了解如何使用探查器优化代码。
使用Profiler查找程序中的瓶颈
对编辑器中或计算机上其他位置的文件运行性能分析
解释结果以评估函数和方法性能
使用这些信息可以加快代码的运行时间
大家好!我是Juanita,在这段视频中,我们将学习如何使用分析器优化您的代码。要显示它,请在“视图”菜单的“窗格”下单击其名称。
分析器将确定文件中使用的每个函数和方法的运行时间和调用次数。分析文件有三种方式:
我们可以使用Profiler路径框右侧的Open按钮浏览文件,这将自动对其运行性能分析。
我们还可以在窗格的路径框中手动输入路径,然后通过按Profile按钮对文件运行分析。
如果我们想要为编辑器中当前打开的文件运行分析器,可以单击Run-->Profile.在菜单栏中,或使用可配置的快捷键 F10 。
我们看到,窗格中的结果向我们显示了文件中的不同函数和方法,每个子函数都在调用它们的项下面分层列出。这些列显示每个函数及其调用的所有内容所用的总时间,而本地时间仅包括该特定函数所用的时间。
例如,函数 values 在此文件中调用函数 internal_values VALUES总共运行了482个用户,其中338个用户在其中执行INTERNAL_VALUES。因此,价值的总时间是482us,但它的当地时间只有144us,因为睡觉是在里面度过的 internal_values 。
values
internal_values
Calls列显示在该级别调用该函数的总次数。最后,如果加载了比较,则会显示三个测量值中每一个的DIFF列中的数字,并指示两个测量值之间的运行时间变化。
通过双击Profiler中的项目,我们将转到编辑器中调用它的文件和行。如果未在某个打开的脚本中调用此函数,则单击它将打开包含它的文件。我们可以单击FileName字段中的向下箭头按钮,重新调用以前配置的文件的路径。
现在我们知道了如何解释性能分析的结果,让我们通过查找耗时最长的函数并使它们更快来优化我们的代码。在这种情况下, to_datetime 需要39秒才能跑完。这是因为Pandas必须解析非标准的时间戳格式,并且没有被告知要尝试使用比默认更快的解析器。
to_datetime
我们可以减少此函数所需的时间,并将其与之前的函数进行比较。为此,首先我们必须将数据另存为 .Result 使用窗格中的保存按钮创建文件。现在我们必须弄清楚如何优化函数,所以让我们搜索它。我们可以看到,我们可以通过以下方式加快此函数的执行速度 manually specifying a datetime format 。因此,我们添加适当的论据, format="%Y-%m-%d %H:%M:%S.%f %z" ,添加到我们的函数调用。
.Result
format="%Y-%m-%d %H:%M:%S.%f %z"
现在,我们再次运行性能分析,看看脚本的性能是如何提高的。如果我们想看看我们缩短了多少时间,我们可以加载之前的结果并查看diff列。请注意,差异是绿色的,因为时间减少了三倍,只需要13秒,而不是39秒。我们的代码现在快了26秒!
既然您已经了解了如何分析代码的执行时间,那么您就可以在Spyder的帮助下编写更高效的程序了。请继续关注我们的下一个视频,并一如既往地关注“谍战快乐”!