У меня есть пара команд Linux, которые я хочу запустить на машине с Windows.Как запускать команды Linux из Python в Windows - PullRequest
1 голос
/ 31 мая 2019

У меня есть несколько команд Linux, которые будут генерировать токен.Я автоматизировал эти команды, используя библиотеку ОС из Python на компьютере с Linux.Работает нормально.

Но, когда я пробую тот же код в Windows, он ничего не возвращает.

Ниже приведен код, который я пробовал.

uniqueKey = os.popen('echo -n kittu | base64')
data = uniqueKey.read()
print data

в Linux Iполучил следующий вывод

a210dHU=

в windows пусто.

Ответы [ 3 ]

3 голосов
/ 31 мая 2019

Команды относятся к конкретной ОС. Например, в Linux ls выводит список файлов в каталоге, а в Windows - dir.

Windows имеет echo, как Linux, но не поддерживает флаг -n - две команды не связаны, только совпадают по имени.

Windows также не имеет команды base64.

Он также не использует | для обозначения трубопроводов, хотя я считаю, что PowerShell делает.


Зачем вообще использовать команды ОС? Python изначально поддерживает кодировку base64:

uniqueKey = base64.b64encode('kittu')
0 голосов
/ 04 июня 2019

Я нашел решение для выполнения команд Linux на Windows. Я включил «bash» в машине Windows. И я использовал библиотеку «подпроцесс» из Python для запуска команд «Linux» в Windows. Ниже приведен код.

bash = subprocess.Popen(['bash'],stdin=subprocess.PIPE,stdout=subprocess.PIPE)
result=bash.communicate(input="echo -n kittu|base64")
print result[0]
0 голосов
/ 01 июня 2019

Если вы используете намерение много использовать команды Linux, но по-прежнему хотите машину с Windows, вы можете установить подсистему Linux: документация Microsoft

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