Запустить функцию из командной строки - PullRequest
293 голосов
/ 21 октября 2010

У меня есть этот код:

def hello():
    return 'Hi :)'

Как бы я запустил это прямо из командной строки?

Ответы [ 15 ]

1 голос
/ 25 марта 2014

Примерно так: call_from_terminal.py

# call_from_terminal.py
# Ex to run from terminal
# ip='"hi"'
# python -c "import call_from_terminal as cft; cft.test_term_fun(${ip})"
# or
# fun_name='call_from_terminal'
# python -c "import ${fun_name} as cft; cft.test_term_fun(${ip})"
def test_term_fun(ip):
    print ip

Это работает в bash.

$ ip='"hi"' ; fun_name='call_from_terminal' 
$ python -c "import ${fun_name} as cft; cft.test_term_fun(${ip})"
hi
1 голос
/ 18 июня 2013

Всегда можно ввести python в командной строке с помощью команды python

, а затем импортировать ваш файл, чтобы import example_file

затем выполните команду с example_file.hello ()

Это позволяет избежать странной функции копирования .pyc, которая возникает при каждом запуске python -c и т. д.

Возможно, нетудобен как одиночная команда, но быстро исправляет текст файла из командной строки и позволяет использовать python для вызова и исполнения файла.

0 голосов
/ 09 июля 2018

Сначала вы должны вызвать функцию, как они сказали вам, или фонд не будет ничего отображать в выводе, после этого сохраните файл и скопируйте путь к файлу, щелкнув правой кнопкой мыши на папке файла и нажав «Копировать файл ", затем перейдите в терминал и напишите: - CD "путь к файлу" - python "имя файла, например (main.py)" после этого он отобразит вывод вашего кода.

0 голосов
/ 17 июня 2017

Используйте инструмент python-c ( pip install python-c ) и затем просто напишите:

$ python-c foo 'hello()'

или вЕсли в файлах Python нет столкновений с именами функций:

$ python-c 'hello()'
0 голосов
/ 21 октября 2010

Эту функцию нельзя запустить из командной строки, так как она возвращает значение, которое останется без изменений. Вы можете удалить возврат и использовать вместо печати

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...