如何将参数传递给 Sublime Text 3 中的构建?

问题描述 投票:0回答:3

我目前正在制作一个在终端上运行的程序(需要一些参数)。

现在我想从 Sublime Text 运行这个相同的程序,但我不知道如何在 Sublime Text 中执行程序之前将参数传递给构建。

我需要启用任何选项来指定参数吗?

使用 Sublime Text 3 build 3035

python python-3.x sublimetext
3个回答
17
投票

您可以为 sublime text 创建一个新的构建系统,并使用固定参数运行您的脚本。

在您的包/用户目录中创建一个新文件 (

CTRL-SHIFT-P --> "Browse Packages"
)

新文件:

Packages/User/my_build.sublime-build

包含以下内容:

{
   "cmd": ["python", "$file", "arg1", "arg2"]
}

(用您的参数替换 arg1、arg2 - 您可以删除它们或根据需要添加更多)

现在重新启动 sublime text 并在菜单中选择您的构建系统:

Tools --> Build System --> my_build
。从现在开始,当您按下 CTRL-B 时,您的构建系统将被执行。

如果您正在处理其他文件或项目,请不要忘记将其改回“自动”。

您可以在构建文件中设置许多选项。请参考https://docs.sublimetext.io/guide/usage/build-systems.html


10
投票

我发现使用带有默认参数的 try catch 更容易,Sublime 的构建系统管理起来很烦人。当你做快节奏的开发时,你可以只修改 except 语句中的参数。

import sys
try:
    if sys.argv[1]:
        Name = str(sys.argv[1])

except:
    print "no argument given - using DERP"
    Name = "DERP"

0
投票

最简单的解决方案是导入 sys 并将其添加到他的列表中

sys.argv
您需要的参数列表。

例子:

#!/usr/bin/env python3

#-*- coding: utf-8 -*-

import numpy as np

#############here your python script

#at the end :

import sys

arglist=["Am Brunnen vor dem Tore",

"Da steht ein Lindenbaum",

"Ich träumt' in seinem Schatten",

"So manchen süßen Traum"] 

# append one arg or a list :

sys.argv.append(arglist)

#thats ALL.. as you see, sublime isn't involved, use it on any IDE.. 


if __name__ == "__main__" :

    import fire

    fire.Fire(main)
© www.soinside.com 2019 - 2024. All rights reserved.