Имея немного странную проблему, так как этот код, как представляется, отлично работает на моих друзей Mac, но совсем не работает на моем ubuntu 16.04.
Через мой python я запускаю следующие
filenames = glob.glob(opts['-I'])
который пытается соответствовать набору из 32 текстовых файлов с форматом TEXT/text01.txt
Моим начальным регулярным выражением было следующее
python -I TEXT/text??
Который возвратил нулевые файлы.
Я также пробовал
python -I TEXT/text*
Кажется, что возвращает только text01.txt. Есть ли соответствующее регулярное выражение, которое может получить все текстовые файлы вместо первого, и есть ли причина, почему это работает на Mac, но не ubuntu?
проблема, когда вы звоните
python -I TEXT/text*
заключается в том, что TEXT/text*
расширяется оболочкой. Итак, это точные аргументы, переданные python:
-I TEXT/text01.txt TEXT/text02.txt (and other matching files)
argparser назначает text01.txt
-I
а другие аргументы игнорируются (проверьте их, чтобы найти их). glob.glob
возвращает точное имя файла, которое он получает (обратите внимание, что text??
не соответствует text01.txt
потому что вам не хватает расширения или text??.txt
it text??.txt
)
Вам нужно процитировать ваш шаблон (не регулярное выражение)
python -I "TEXT/text*"
или избежать шаблона:
python -I TEXT/text\*
или использовать более доисторическую командную строку, такую как окна CMD, где символы символов передаются буквально.