Skip to main content
 首页 » 编程设计

python之从复制和粘贴的 doctest 中删除 '>>> '

2025年05月04日14kevingrace

阅读文档我经常遇到我想运行的文档测试。假设您想在 Jupyter 笔记本中运行以下命令:

>>> a = 2 
>>> b = 3 
>>> c = a + b 

最快的方法是什么?

请您参考如下方法:

只需将其复制并粘贴到新单元格中即可。 Jupyter 在运行示例时会为您去除此类标记:

如果您必须去除标记(可能是出于美学原因),您可以使用一些 Python 代码来完成此操作:

def extract_console_code(sample): 
    return ''.join([l[4:] for l in sample.splitlines(True) if l[:4] in ('>>> ', '... ')]) 
 
print(extract_console_code(r'''<paste code here>''')) 

注意 r 原始字符串文字!这应该适用于大多数 Python 代码。仅当您的代码示例包含更多 ''' 三重单引号时,您才需要单独处理它们(通过在代码周围使用双引号,或通过将不同的字符串文字样式连接在一起的部分)。另外,请注意,我们会跳过任何不是以 >>> 或 ... 开头的行;这些是输出行而不是代码。

您必须在 Python 脚本中运行它,因为 Jupyter 控制台仍然只是删除那些初始行,因此对于您的确切示例,根据您添加行的方式,可能是 none 或仅返回几行;任何以 >>> 或 ... 开头的行,即使是字符串文字,也会被 Jupyter 删除!