使用参数执行python脚本

时间:2020-10-09 06:55:33

标签: python

我在执行此python脚本时尝试使用python在vmware(vsphere)上获取vm名称:

https://github.com/vmware/pyvmomi-community-samples/blob/master/samples/get_vm_names.py

我有此消息:

python3 test2.py --host ip_of_vmware
usage: test2.py [-h] -s HOST [-o PORT] -u USER [-p PASSWORD] [-S]
test2.py: error: the following arguments are required: -u/--user

我不知道如何执行此脚本。

我认为这是用于输入参数的这一行:

 si = SmartConnectNoSSL(host=args.host,
                               user=args.user,
                               pwd=args.password,
                               port=int(args.port))
        atexit.register(Disconnect, si)

我想知道如何执行此脚本。 感谢您的答复,

1 个答案:

答案 0 :(得分:0)

程序所需的参数由该程序中的setup_args函数构建,而该函数又似乎由以下行构造:

library(tidyverse)
library(stringr)
library(dplyr)
library(ngram)
library(tidyr)

bi_words <- readRDS("./bi_words.rds")
tri_words <- readRDS("./tri_words.rds")
quad_words <- readRDS("./quad_words.rds")

bigram <- function(input_words){
        num <- length(input_words)
        dplyr::filter(bi_words, 
               word1==input_words[num]) %>% 
                top_n(1, n) %>%
                filter(row_number() == 1L) %>%
                select(num_range("word", 2)) %>%
                as.character() -> out
        ifelse(out =="character(0)", "?", return(out))
}

trigram <- function(input_words){
        num <- length(input_words)
        dplyr::filter(tri_words, 
               word1==input_words[num-1], 
               word2==input_words[num])  %>% 
                top_n(1, n) %>%
                filter(row_number() == 1L) %>%
                select(num_range("word", 3)) %>%
                as.character() -> out
        ifelse(out=="character(0)", bigram(input_words), return(out))
}

quadgram <- function(input_words){
        num <- length(input_words)
        dplyr::filter(quad_words, 
               word1==input_words[num-2], 
               word2==input_words[num-1], 
               word3==input_words[num])  %>% 
                top_n(1, n) %>%
                filter(row_number() == 1L) %>%
                select(num_range("word", 4)) %>%
                as.character() -> out
        ifelse(out=="character(0)", trigram(input_words), return(out))
}

ngrams <- function(input){
        # Create a dataframe
        input <- data.frame(text = input)
        # Clean the Inpput
        replace_reg <- "[^[:alpha:][:space:]]*"
        input <- input %>%
                mutate(text = str_replace_all(text, replace_reg, ""))
        # Find word count, separate words, lower case
        input_count <- str_count(input, boundary("word"))
        input_words <- unlist(str_split(input, boundary("word")))
        input_words <- tolower(input_words)
        # Call the matching functions
        out <- ifelse(input_count == 1, bigram(input_words), 
                      ifelse (input_count == 2, trigram(input_words), quadgram(input_words)))
        # Output
        return(out)
}

input <- "In case of a"
ngrams(input)

这是在我没有的包装中,所以我看不到它在做什么。

尽管如此,该帮助消息并未明确说明哪些参数是强制性的,而是朝着该总体方向暗示。我相信[]中的参数是可选参数,其他所有参数都是必需的,因此您至少需要-s HOST和-u USER

parser = cli.build_arg_parser()

python3 test2.py -s HOST -u USER