在microsoft visual studio中运行带参数的python脚本

kyks70gy  于 2023-05-07  发布在  Python
关注(0)|答案(5)|浏览(382)

我是python的新手,使用Microsoft Visual Studio
我必须运行这个(但它说需要超过1个值):

from sys import argv

script, first, second, third = argv

print "The script is called:", script
print "Your first variable is:", first
print "Your second variable is:", second
print "Your third variable is:", third

我明白我必须输入(例如)才能运行代码:

python ex13.py first 2nd 3rd

但我该写在哪里呢
在VisualStudio中,只有启动按钮用于运行脚本
谢谢

w9apscun

w9apscun1#

你可以使用Python Tools for Visual Studio插件来配置python解释器。创建一个新的python项目,然后转到项目属性|调试并输入参数。您不需要键入python或脚本名称,只需键入参数即可。在“常规”中指定脚本|启动文件。单击“开始调试”以使用指定的参数运行脚本。

vnjpjtjt

vnjpjtjt2#

可以通过执行以下操作输入命令行选项:
1.在解决方案资源管理器中右键单击您的项目并选择“属性”。
1.单击调试选项卡
1.在脚本参数中输入命令行选项
1.运行项目
例如,我的代码有:

opts, args = getopt.getopt(argv,"p:n:",["points=","startNumber="])

在脚本参数中输入-p 100, -n 1
我正在使用Visual Studio 2017。

ukdjmx9f

ukdjmx9f3#

我写了一个例子。对于每个Argument,您都要在for循环中测试正确的参数。可以将参数放在项目的属性对话框中。在debug下,例如脚本参数“-i aplha.txt”。

import sys
import getopt

def main(argv):
    try:
        opts, args = getopt.getopt(argv,"hi:",["ifile="])
    except getopt.GetoptError:
      print 'test.py -i <inputfile>'
      sys.exit(2)
    for opt, arg in opts:
        if opt in ("-i", "--ifile"):
            inputfile = arg
    print 'Input file is "', inputfile

if __name__ == "__main__":
   main(sys.argv[1:])
rdrgkggo

rdrgkggo4#

在Visual Studio中,您可以打开一个终端(View -〉Terminal)。从那里,您可以快速地使用参数运行它。

python <your_script.py> <args>
bqjvbblv

bqjvbblv5#

这是Visual Studio 2022。
在“解决方案资源管理器”中,右键单击Python文件,然后选择“添加调试配置”(或“打开调试和启动设置”,如果可用)。

现在,在打开的JSON配置文件中,将参数添加到适当的键中

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "python",
      "interpreter": "(default)",
      "interpreterArguments": "",
      "scriptArguments": "myArgument1 myArgument2",
      "env": {},
      "nativeDebug": false,
      "webBrowserUrl": "",
      "project": "setup.py",
      "projectTarget": "",
      "name": "setup.py"
    }
  ]
}

快速肮脏的解决方案

将以下内容添加到脚本的顶部(如果有from __future__ import,则在其正下方)

import sys
sys.argv.extend(["myArgument1", "myArgument2"])

相关问题