Запустите Anaconda и выполните Python расчеты через BAT - PullRequest
0 голосов
/ 14 марта 2020

Python сценарии хороши для многих вещей, но иногда мне просто нужно открыть командную строку и выполнить базовые c вычисления. Было бы неплохо не запускать Anaconda, затем запускать Python, затем импортировать математический пакет, а затем определять базовые c константы (например, Na = 6.022e23) каждый раз, когда мне нужно вычислить что-то простое.

Поэтому я попытался написать командный файл для запуска Anaconda, запустить Python, импортировать математический пакет и определить константы. Эти строки в моем BAT-коде запустят Anaconda и Python:

call C:\Users\Chris\Miniconda3\Scripts\activate.bat C:\Users\Chris\Miniconda3
python

К сожалению, все строки, которые я добавляю после этого в BAT-код, игнорируются. Буду признателен за любые рекомендации, чтобы сделать эту работу.

Ответы [ 2 ]

1 голос
/ 14 марта 2020
@echo off
call "C:\Users\Chris\Miniconda3\Scripts\activate.bat" "C:\Users\Chris\Miniconda3"
python -i -c "import math; Na = 6.022e23"

Этот код может удовлетворить ваши потребности, если код Python компактный. Он будет import и назначит константы в качестве аргументов Python. Используйте ; для разделения Python строк кода вместо символов новой строки.

-i предназначен для входа в режим проверки, а -c позволяет коду Python быть следующим аргументом.

На основании ответа Майкла Виллани:

 @echo off
rem = r'''
:: From here and on, write any Batch file syntax and it will be ignored by Python
::
:: The Batchography book by Elias Bachaalany
::
call "C:\Users\Chris\Miniconda3\Scripts\activate.bat" "C:\Users\Chris\Miniconda3"
python -ix "%~f0" %*
exit /b
:: End of batch file commands
'''
# Anything here is interpreted by Python
del rem
import math
Na = 6.022e23

Рекомендовать использовать необработанный строковый литерал, чтобы исключить необходимость экранирования \ для пакетного файла код.

Обе концепции вызывают режим проверки -i после выполнения кода Python. Для выхода из режима проверки используйте exit() или quit().

Таким образом, вы можете использовать интерактивную подсказку и ввести свою математику.

>>> Na
6.022e+23
>>> 3+2
5
>>>
0 голосов
/ 14 марта 2020
@echo off
rem = """
:: From here and on, write any Batch file syntax and it will be ignored by Python
:: 
:: The Batchography book by Elias Bachaalany
::
python -x "%~f0" %*
exit /b %errorlevel%
:: End of batch file commands
"""
# Anything here is interpreted by Python
import platform
import sys
print("Hello world from Python %s!\n" % platform.python_version())
print("The passed arguments are: %s" % sys.argv[1:])

http://lallouslab.net/2017/06/12/batchography-embedding-python-scripts-in-your-batch-file-script/

...