我目前正在制作一个在终端上运行的程序(需要一些参数)。
现在我想从 Sublime Text 运行这个相同的程序,但我不知道如何在 Sublime Text 中执行程序之前将参数传递给构建。
我需要启用任何选项来指定参数吗?
使用 Sublime Text 3 build 3035
您可以为 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
我发现使用带有默认参数的 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"
最简单的解决方案是导入 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)