Python Programm, как использовать консольный ввод при выполнении файла? - PullRequest
0 голосов
/ 06 декабря 2018

Допустим, я выполняю файл python, как программу в Ubuntu

python filename.py --input1 --input2

Как я могу использовать эти2 входа в моем коде?(Если возможно даже с Python)

Кстати, я хотел бы сделать это на Windows, а не Linux.Например, мой код содержит функцию, которая принимает 1 аргумент в виде строки.

Я мог бы просто ввести этот аргумент как input () во время выполнения кода, но я хотел бы указать его, когдаЯ выполняю код уже.

Ответы [ 3 ]

0 голосов
/ 06 декабря 2018

Это, безусловно, возможно, и даже на самом деле даже хлеб с маслом на python и других языках сценариев.

В python есть даже модуль getopt, который поможет вам в этом, если вы знакомы с реализацией c.

Копирование-вставка из официальной документации Python: import getopt, sys

def main():
    try:
        opts, args = getopt.getopt(sys.argv[1:], "ho:v", ["help", "output="])
    except getopt.GetoptError as err:
        # print help information and exit:
        print str(err)  # will print something like "option -a not recognized"
        usage()
        sys.exit(2)
    output = None
    verbose = False
    for o, a in opts:
        if o == "-v":
            verbose = True
        elif o in ("-h", "--help"):
            usage()
            sys.exit()
        elif o in ("-o", "--output"):
            output = a
        else:
            assert False, "unhandled option"
    # ...

if __name__ == "__main__":
    main()

Официальная документация находится здесь: https://docs.python.org/2/library/getopt.html

Инструкции см., Например: https://www.tutorialspoint.com/python/python_command_line_arguments.htm

С другой стороны, argparse проще, если вы хотите сделать это более простым, но не c-подобным способом.Для этого см. Другой ответ.

0 голосов
/ 06 декабря 2018

Для простого случая вы можете просто использовать sys.argv следующим образом:

# in your source.py
from sys import argv

arg1 = argv[1] # If your input is a "numerci type" , apply the the appropriate
arg2 = argv[2] # conversion by using (int, float)

...

Затем вы можете выполнить свой код:

python source.py arg1 arg2
0 голосов
/ 06 декабря 2018

Я рекомендую вам взглянуть на argparse.https://docs.python.org/3.7/howto/argparse.html

Или

$ python
>>> import argparse
>>> help(argparse)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...