簡體   English   中英

在終端中使用多個 arguments 執行 python 函數

[英]Executing python functions with multiple arguments in terminal

我寫了一個 python function 需要多個 arguments 我希望它從終端運行但它不工作。 我究竟做錯了什么?

計數.py 腳本:

def count (a, b): 
    word = False 
    a = " " + a + " "
    b = " " + b + " "

    result = 0 

    for i in range (len (a)-1): 
        if a[i] == " " and a[i+1] != " ":
            word = True 
            result += 1
        else: 
            word = False

    for i in range (len (b)-1): 
        if b[i] == " " and b[i+1] != " ":
            word = True 
            result += 1
        else: 
            word = False


    return result


if __name__ == "__main__":
    count (a, b) 

終端命令:

    python counting.py count "hello world" "let's check you out" 

使用sys model,添加這段代碼,sys.argv第一個參數就是這個文件名

import sys
if __name__ == "__main__":
    a = sys.argv[1]
    b = sys.argv[2]
    count(a,b)

終端命令: python counting.py "hello word" "let's check you out"例如:

import sys
def count(s1, s2):
    print s1 + s2

print sys.argv
count(sys.argv[1], sys.argv[2])

出去:

python zzzzzzz.py “你好” “單詞”

['zzzzzzz.py', 'hello', 'word']
helloword

abcount的 arguments。 您不能在 scope 之外使用它們。您可以改為使用sys.argv訪問命令行 arguments:

from sys import argv
if __name__ == "__main__":
    print(count (argv[1], argv[2]))

正如其他人使用sys所建議的那樣:

from sys import argv

def count(a, b):
    return len(a.split(" ")) + len(b.split(" "))

if __name__ == "__main__":

    a = argv[1]
    b = argv[2]
    
    word_count = count(a, b)
    print(word_count)

或者,您可以使用內置模塊argparse 如果您有一個更復雜的腳本,從控制台獲取 arguments。

import argparse

def count(a, b):
    return len(a.split(" ")) + len(b.split(" "))

if __name__ == "__main__":

    parser = argparse.ArgumentParser(description="Word Count")
    parser.add_argument("-a", type=str, help="First Sentence")
    parser.add_argument("-b", type=str, help="Second Sentence")
    args = parser.parse_args()
    
    word_count = count(args.a, args.b)
    print(word_count)

使用python counting.py -a "hello world" -b "let's check you out"執行腳本。

如果您執行python counting.py -h ,您將為用戶提供格式良好的幫助:

usage: counting.py [-h] [-a A] [-b B]

Word Count

optional arguments:
  -h, --help  show this help message and exit
  -a A        First Sentence
  -b B        Second Sentence

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM