从PowerShell运行Python函数

时间:2018-01-17 14:54:20

标签: python powershell

我有一个带脚本的.py文件。

我想从PowerShell运行它。我可以写下:

C:\Users\AAA\AppData\Local\Continuum\Anaconda3\pythonw.exe "X:\Data\_Private\Data\test.py"

但是我想将一些参数传递给脚本。因此,我将所有脚本设置为main(argument1, argument2)函数。它看起来像这样:

def main(argument1, argument2):
    def Hello(argument1, argument2):
        print("Hi " + argument1 + " and " + argument2 + "!")

脚本的其余部分继续。

也许有人可以告诉我如何在一行中从PowerShell运行该脚本并传递参数?

2 个答案:

答案 0 :(得分:0)

我认为这就是你要找的东西:

options(shiny.suppressMissingContextError=TRUE)

tb <- tibble(x = c(1, 2))
tb_2 <- tb %>% mutate(y = {
  .x <- .$x
  makeReactiveBinding(".x")
  y <- reactive(.x * 10, environment())
  y()
})
tb_2
#> # A tibble: 2 x 2
#>       x     y
#>   <dbl> <dbl>
#> 1     1    10
#> 2     2    20
tb_2$x <- c(10, 20)
tb_2
#> # A tibble: 2 x 2
#>       x     y
#>   <dbl> <dbl>
#> 1    10    10
#> 2    20    20

来自PowerShell:

import sys

def Hello(argument1, argument2):
    print("Hi " + argument1 + " " + argument2 + "!")

if __name__ == "__main__":
    Hello(sys.argv[1],sys.argv[2])

当然你可能想检查你的argv指数是否在范围内。

答案 1 :(得分:0)

主要功能的使用应如下所示:

import sys

def hello(argument1,argument2):
    print("Hi " + argument1 " and " + argument2 "!"

if __name__ == "__main__":
    arg1 = sys.argv[1]
    arg2 = sys.argv[2]
    hello(arg1, arg2)

您只定义函数main,但从不调用它。

请在此处阅读有关main的更多信息:main
阅读有关sys.argv的更多信息:sys_argv