将参数从批处理文件传递到Python

将参数从批处理文件传递到Python,python,batch-file,exception,null,arguments,Python,Batch File,Exception,Null,Arguments,我试图将参数从批处理文件传递到python,如下所示。似乎没有任何东西传递给“sample”变量。我的问题是 如何正确地进行论证 如何在运行.bat时检查空点错误以执行此python?执行时,我可能无法在IDE中看到控制台日志 我的批处理文件(.bat) 我的python文件(test.py) 使用argparse 例如:在你的python文件中 import argparse parser = argparse.ArgumentParser(description='Your prog de

我试图将参数从批处理文件传递到python,如下所示。似乎没有任何东西传递给“sample”变量。我的问题是

  • 如何正确地进行论证
  • 如何在运行.bat时检查空点错误以执行此python?执行时,我可能无法在IDE中看到控制台日志
  • 我的批处理文件(.bat)

    我的python文件(test.py)

    使用argparse

    例如:在你的python文件中

    import argparse
    
    parser = argparse.ArgumentParser(description='Your prog description.')
    parser.add_argument('-f','--foo', help='Description for foo argument', required=True)
        :
        :
    args = parser.parse_args()
    
    在你的bat文件里

    python prog.py -f <foo arg here>
    
    python prog.py-f
    
    使用argparse

    例如:在你的python文件中

    import argparse
    
    parser = argparse.ArgumentParser(description='Your prog description.')
    parser.add_argument('-f','--foo', help='Description for foo argument', required=True)
        :
        :
    args = parser.parse_args()
    
    在你的bat文件里

    python prog.py -f <foo arg here>
    
    python prog.py-f
    
    在代码中,您将跳过第一个参数两次

    使用
    sys.argv[1://code>调用
    main
    ,跳过第一个参数(程序名);但是,
    main
    本身使用
    argv[1]
    。。。再次跳过它的第一个参数

    例如,只需将
    sys.argv
    原封不动地传递到
    main
    即可


    或者,更优雅地说,确实调用
    main(sys.argv[1:])
    ,但是,在
    main
    中,使用
    argv[0]

    在代码中,您将跳过第一个参数两次

    使用
    sys.argv[1://code>调用
    main
    ,跳过第一个参数(程序名);但是,
    main
    本身使用
    argv[1]
    。。。再次跳过它的第一个参数

    例如,只需将
    sys.argv
    原封不动地传递到
    main
    即可


    或者,更优雅地说,确实调用
    main(sys.argv[1:])
    ,但是,在
    main
    中,使用
    argv[0]

    optparse已弃用;您应该更喜欢使用now.Updated My and answer to argparse,Thanksoptparse已弃用;你应该更喜欢现在使用。更新我自己和回答argparse,谢谢