如何在 VS Code 中执行 运行 Python 脚本时隐藏文件路径?

How to hide file paths when running Python scripts in VS Code?

每次我 运行 我的代码时,底部的终端都会显示这个长名称(我认为是文件位置)以及它应该显示的任何输出。

有没有办法让它消失?

这是它的样子:

administrator@Machintosh-2 Exercise Files Python % /user/bin/python3...
Hello world!  
administrator@Machintosh-2 Exercise Files Python %

AFAIK,无法隐藏路径,因为 VS Code 集成终端基本上使用的是 OS/system 的底层终端。终端上的 运行 Python 脚本需要以下形式:

<path/to/python/interpreter> <path/to/python/file>

如果你想要一个“更干净”的控制台输出,你可以创建一个 debug/launch configuration for Python, then set the console 配置到 internalConsole:

.vscode/launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "run-my-script",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/path/to/your_script.py",
            "console": "internalConsole"
        }
    ]
}

这将在 调试控制台 选项卡而不是 终端 选项卡中显示输出。将不再有路径,只要您的脚本打印到控制台即可。

示例输出:

不幸的是,如果您的 Python 代码使用并需要用户手动 input(),请使用 调试控制台 internalConsole 解决方案不会工作。它将显示此错误:

没有直接的解决方案来获得“干净”的输出并允许手动用户 input()。您可能想考虑从文件或 passing them as command line arguments 读取程序输入。当 运行 你的脚本

时,VS Code 支持传入参数 ([args])
<path/to/python/interpreter> <path/to/python/file> [args]

使用 launch.json 文件中的 "args" 选项。这是一个简单的例子 sys.argv:

python代码

import sys

# This is always path to the script
arg_0 = sys.argv[0]

# Same sequence as "args" in launch.json
arg_1 = sys.argv[1]
arg_2 = sys.argv[2]

print(arg_1)
print(arg_2)

.vscode/launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "run-my-script",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/path/to/your_script.py",
            "console": "internalConsole",
            "args": [
                "89",
                "abc"
            ]
        }
    ]
}

示例输出

我 运行 遇到了同样的问题,我找到了替代解决方案。使用简单的一行启动程序后,可以清除控制台。这也将删除终端中的初始路径输出:

from os import system

system("clear")
print("Hello World")

我的 simplest/quickest 方法是将

print("3c")

在我的文件的顶部(或我希望删除 print("3c") 之上的所有内容的其他任何地方(这样我就可以消除其他打印语句可能产生的文本噪音)。

在 ASCII 编码中,八进制数 33 是 ESC(转义)字符,它是终端控制序列的通用前缀。结合 c 我们有一个旧的 VT100 reference 本质上要求终端重置为默认值,从而消除所有文本噪音所以我们只看到我们代码的输出。