Java Graphics2D прозрачный фон

Расширение * glob является частью оболочки, но по умолчанию subprocess выполняет not отправку ваших команд через оболочку, поэтому выполняется команда (первый аргумент, ls) , тогда в качестве аргумента используется литерал *.

Это хорошо, см. блок предупреждения в разделе «Часто используемые аргументы» , подпроцессов docs , Он главным образом обсуждает последствия для безопасности, но также помогает избежать ошибок глупого программирования (так как нет никаких волшебных символов оболочки, о которых нужно беспокоиться)

Моя основная жалоба с shell=True заключается в том, что обычно это лучший способ перейдите к проблеме - в вашем примере вы должны использовать модуль glob :

import glob
files = glob.glob("*.bc")
print files # ['file1.bc', 'file2.bc']

Это будет быстрее (без накладных расходов на запуск), более надежным и перекрестным платформа (не зависит от платформы, имеющей команду ls)

16
задан Lajos Arpad 7 May 2013 в 15:57
поделиться