что означают эти печати (check_output (["ls", "../input"]).decode("utf8"))? - PullRequest
0 голосов
/ 07 декабря 2018
from subprocess import check_output

print(check_output(["ls", "../input"]).decode("utf8"))

код отсюда https://www.kaggle.com/itoeiji/deep-reinforcement-learning-on-stock-data

Я немного знаю Python, поэтому не могу понять, какова цель этих кодов.

Ответы [ 2 ]

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

check_output запускает команду оболочки и возвращает ее стандартный вывод.decode декодирует байтовую строку в правильную строку Python Unicode.

Вам обычно не следует использовать ls программно , и вам, как правило, следует избегать использования внешнего подпроцесса для задачи, которую Python можетлегко выполнить себя.Лучший, более портативный и более эффективный способ достижения того же результата -

 import os

 print('\n'.join(os.listdir('../input')))

... хотя это не жестко кодирует предположение, что имена файлов возвращаются как UTF-8 (чтовероятно, это тоже хорошо для мобильности).

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

Довольно ясно,

Вызов check_ouput выполняет указанную команду ls ../input, которая выводит каталог input в каталог.

Затем он декодирует результат команды, чтобы он былв utf-8.

И затем он печатает его для вас, чтобы увидеть его.

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