Вывод оболочки в текстовый файл с использованием подпроцесса в Windows - PullRequest
0 голосов
/ 20 мая 2018

Я пытаюсь создать выходной txtfile, используя подпроцесс в Python 3.6, но дело в том, что документация не показывает мне, как кодировать в Windows.Например,

import subprocess     
subprocess.run(["ls", "-l"])
FileNotFoundError: [WinError 2] The system cannot find the file specified

Не работает на моем компьютере, как и другие примеры.Не могли бы вы дать мне несколько советов для завершения этого кода?

 f = open('output.txt', 'w')
 subprocess.check_output( ? , shell=True, ? )

 print("Example")
 print("Example")

 f.close()

1 Ответ

0 голосов
/ 20 мая 2018

РЕДАКТИРОВАТЬ: убедитесь, что вы используете subprocess.run или subprocess.Popen

Windows различия в сторону (как сказал Мартино в комментариях к вашему ОП, ls не будет работать наWindows, вам нужно использовать команду dir), вы хотите использовать subprocess.PIPE, чтобы иметь возможность сохранять выходные данные команды в переменной.Затем вы сможете перебирать эту переменную, сохраняя ее в файле, что-то вроде:

# Save the output of the `dir` command
var = subprocess.run( <dir_command>, stdout=subprocess.PIPE, shell=True)

# Iterate through the lines saved in `var`, and write them to `file`, line by line
with open('path/to/file', 'a') as file:
    for line in var:
         file.write(line)

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