直接将代码复制粘贴到Python解释器中
我有一段代码想要复制粘贴到我的Python解释器里。不过,由于Python对空格非常敏感,直接复制粘贴并不简单。(我觉得空格可能会被搞乱。)
有没有更好的方法来复制和粘贴这段代码呢?
也许我可以从一个文件中加载这段代码。
这只是一个小例子,但如果代码很多,我希望能避免从函数的定义开始逐行输入或者逐行复制粘贴。
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
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 = ''
11 个回答
20
你可以简单地把所有的制表符(Tab)换成空格,并且删除所有的空行。这样你就可以把任何代码粘贴到Python控制台(比如:python2.6)里了。
27
你通常可以很简单、安全地在 IPython 中进行复制粘贴,使用的命令是 %cpaste
(手动用 --
来结束代码)和 %paste
(立即执行代码)。这对于测试你从网页或者编辑器复制的代码非常方便。这些命令甚至会自动去掉开头的提示符(比如 In[1]
和 ...
),让你更专注于代码本身。
IPython 还有一个 %run
命令,可以运行一个程序,并且让你留在一个 Python 的环境中,这样你就可以使用程序中定义的所有变量,随意进行操作。
如果你想了解这些功能的帮助信息,可以输入 %cpaste?
等命令。
16
你可以使用 execfile(filename) 来执行一个文件。这和导入一个模块差不多,不过它省略了一些管理模块的步骤,而且不需要你把文件夹添加到 sys.path 里。
如果你有一段复制粘贴的代码,可以通过 exec(codestring) 来执行它。