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

49 投票
11 回答
120275 浏览
提问于 2025-04-15 20:45

我有一段代码想要复制粘贴到我的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) 来执行它。

撰写回答