ПЕРВЫЕ это не регулярное выражение, а расширение оболочки (glob), которое вы, похоже, хотите выполнить. Это означает, что вы должны вызвать / bin / sh для запуска cat. Следующее должно сделать трюк:
pid = subprocess.Popen(["/bin/sh", "-c", "cat", filename + "*"]);
Теперь / bin / sh будет фактически выполнять расширение звездочки для вас, и вы получите желаемый результат.
Или вы можете использовать библиотеку globbing для самостоятельного создания расширений globbing (т.е. выполнять работу, выполняемую оболочкой):
pid = subprocess.Popen(["cat"] + glob.glob(filename + "*"));
glob.glob () возвращает массив файлов, соответствующих глобализации.