Мне очень нравится способность jupyter смешивать встроенные команды bash следующим образом:
for d in list_of_dirs:
! ls {d}
Однако есть ли способ получить вывод одной из этих встроенных команд, который будет назначен переменной python? Например, как список python?
os.popen работает для этого. popen — открывает канал к команде или от нее. Возвращаемое значение — это открытый файловый объект, подключенный к каналу, который можно прочитать. split('\n') преобразует вывод в список
import os
list_of_ls = os.popen("ls").read().split('\n')
print list_of_ls
Что-то вроде этого?
Код:
python_list = []
for d in list_of_dirs:
temp_list = !ls {d}
python_list.extend(temp_list)
Ах! Теперь я чувствую себя глупо из-за того, что не пытался просто напрямую присвоить его переменной. Спасибо!! Примет это, когда это позволит.
Это Питон! Используйте псевдокод, если не уверены!))
Это хорошо работает
for d in list_of_dirs:
out = !'ls {0}'.format('d')
хм интересная альтернатива, спасибо. Если выяснится, что напрямую назначить вывод
!
переменной невозможно, я выберу этот ответ!