Я не могу добавить комментарий к IonicBurger , потому что у меня нет "50 репутации", поэтому я добавлю новую запись.Мои извенения. os.popen () лучше всего подходит для нескольких / сложных команд (на мой взгляд), а также для получения возвращаемого значения в дополнение к получению стандартного вывода, как следующие более сложные множественные команды:
import os
out = [ i.strip() for i in os.popen(r"ls *.py | grep -i '.*file' 2>/dev/null; echo $? ").readlines()]
print " stdout: ", out[:-1]
print "returnValue: ", out[-1]
В этом списке будут перечислены все файлы Python, содержащие слово 'file' в любом месте своего имени. [...] является списком для удаления (удаления) символа новой строки из каждой записи. echo $? - это команда оболочки, которая показывает статус возврата последней выполненной команды, которая будет командой grep и последним элементом списка в этом примере. 2> / dev / null говорит, что нужно напечатать stderr команды grep в / dev / null , поэтому она не отображаетсяна выходе.Команда 'r' перед 'ls' должна использовать необработанную строку, чтобы оболочка не интерпретировала метасимволы, подобные '*' .Это работает в Python 2.7.Вот пример вывода:
stdout: ['fileFilter.py', 'fileProcess.py', 'file_access..py', 'myfile.py']
returnValue: 0