直接将代码复制并粘贴到 Python 解释器中

2025-01-21 09:01:00
admin
原创
116
摘要:问题描述:我想将一段代码复制并粘贴到我的 Python 解释器中。遗憾的是,由于 Python 对空格敏感,因此无法直接以合理的方式复制和粘贴它。(我认为空格被弄乱了。)复制并粘贴的更好方法是什么?也许我可以从文件中加载片段。这只是一个小例子,但如果代码很多,我想避免从函数定义中输入所有内容或逐行复制和粘贴。...

问题描述:

我想将一段代码复制并粘贴到我的 Python 解释器中。遗憾的是,由于 Python 对空格敏感,因此无法直接以合理的方式复制和粘贴它。(我认为空格被弄乱了。)

复制并粘贴的更好方法是什么?

也许我可以从文件中加载片段。

这只是一个小例子,但如果代码很多,我想避免从函数定义中输入所有内容或逐行复制和粘贴。

class bcolors: 
    HEADER = '' 
    OKBLUE = '' 
    OKGREEN = '' 
    WARNING = '' 
    FAIL = '' 
    ENDC = '' 
 
    def disable(self):  
        self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation 
        self.OKBLUE = '' 
        self.OKGREEN = '' 
        self.WARNING = '' 
        self.FAIL = '' 
        self.ENDC = ''

解决方案 1:

通常,您可以使用IPython轻松安全地进行复制粘贴,方法是使用命令%cpaste(手动用 结束代码--)和%paste(立即执行代码)。这对于测试从网页或编辑器复制的代码非常方便:这些命令甚至可以为您删除前导提示(如In[1]...)。

IPython 还有一个%run命令,它可以运行一个程序并让你进入一个 Python shell,其中包含程序中定义的所有变量,以便你可以使用它们。

为了获得这些功能的帮助:%cpaste?,等等。

解决方案 2:

您可以简单地将所有制表符转换为空格并删除所有空行。这样您就可以将任何代码粘贴到 python 控制台(例如:python2.6)

解决方案 3:

您可以调用 execfile(filename)。与导入模块大致相同,只是它跳过了模块管理部分,并且不需要您将文件夹添加到 sys.path。

可以通过调用 exec(codestring) 来执行复制粘贴的代码。

解决方案 4:

您只需将文件导入 Python 解释器即可。这将加载类,并允许您运行代码。

例如,创建一个名为“bgcolors.py”的文件,然后将代码复制并粘贴到其中。然后使用 Python 解释器,只需输入“import bgcolors”,即可运行它。

您可以在这里阅读更多内容:

http://docs.python.org/tutorial/modules.html

解决方案 5:

我的回答专门关于复制粘贴到标准 python shell 中(仅在 linux 上测试)。

根据代码的来源和最初的格式,空格可能重要也可能不重要。特别是对于您的示例代码片段 - 从 SO 的代码格式部分复制粘贴 - 这并不重要(假设代码已正确缩进以便可执行)。

但是,空行确实会在标准python解释器中造成麻烦,因为它通常是shell-s的de-indent cmd。 在您的代码片段中,disable()函数定义前面的空行会过早结束/退出类定义,因此当disable()定义行出现缩进时会检测到错误:

>>> class bcolors: 
...     HEADER = '' 
...     OKBLUE = '' 
...     OKGREEN = '' 
...     WARNING = '' 
...     FAIL = '' 
...     ENDC = '' 
... 
>>>     def disable(self):  
  File "<stdin>", line 1
    def disable(self):  
    ^
IndentationError: unexpected indent
>>> 

所以你只需要注意那些空行。你的代码片段只需要 2 次多行复制粘贴操作就可以解决该空行问题。

我唯一需要做的就是 - 复制粘贴已经缩进的代码部分(比如类内部的函数) - 增加一个缩进级别,这样就不需要重新缩进复制的代码了。为此,if 1:在粘贴代码片段之前添加一行,Enter在之后添加一行(即空行)即可:

>>> if 1:
...     def disable(self):  
...         self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation 
...         self.OKBLUE = '' 
...         self.OKGREEN = '' 
...         self.WARNING = '' 
...         self.FAIL = '' 
...         self.ENDC = ''
... 
>>>

解决方案 6:

您可以使用IPython,它是更好的 python repl。它具有使用 %edit 命令从外部编辑器获取输入的命令。

解决方案 7:

Dreampie允许您以适当的缩进复制和粘贴代码。

解决方案 8:

IDLE界面确实尽力保留粘贴文本的正确缩进。

解决方案 9:

我将编辑器的缩进设置从制表符改为空格。(我使用 OSX 终端运行解释器。)

解决方案 10:

有一个内置方法调用“缩进区域和去缩进区域”,您可以直接使用它。一次性粘贴大量代码后,您可以全部选中并调整空白。

解决方案 11:

对于那些在 Windows 上的 python 解释器 shell 中使用 ctrl-c 和 ctrl-v 进行复制/粘贴时遇到问题的用户,它仅显示:

>>> ^V

只需右键单击应用程序窗口标题栏并选择默认或属性,然后取消选中Use legacy console (requires relaunch)以确保现在Enable Ctrl key shortcuts已选中,然后关闭并重新打开 Python 解释器控制台窗口。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   3892  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   2717  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Freshdesk、ClickUp、nTask、Hubstaff、Plutio、Productive、Targa、Bonsai、Wrike。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在项目管理过程中面临着诸多痛点,如任务分配不...
项目管理系统   52  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Monday、TeamGantt、Filestage、Chanty、Visor、Smartsheet、Productive、Quire、Planview。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多项目经理和团队在管理复杂项目时,常...
开源项目管理工具   54  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Smartsheet、GanttPRO、Backlog、Visor、ResourceGuru、Productive、Xebrio、Hive、Quire。在当今快节奏的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在选择项目管理工具时常常面临困惑:...
项目管理系统   49  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用