Я должен конвертировать много файлов .ai в .svg, и я нашел инструмент ai2svg. я пробовал

for i in `find ./ -type f -name \*.ai`; do python ai2svg.py "$i"; done

Но я получаю такие ошибки, как

IOError: [Errno 2] Нет такого файла или каталога: трассировка 'Profile' (последний вызов был последним): файл "ai2svg.py", строка 171, в inf = open (sys.argv [1])

Когда имя файла «Профиль test.ai». Можно ли как-то обойти это, кроме как удалить все пробелы в именах из файлов .ai заранее?

Спасибо.

2 ответа2

1

Это сделает это:

find . -type f -name \*.ai -exec python ai2svg.py {} \;

Если ai2svg.py работает с несколькими файлами (как большинство инструментов * nix), вы можете сделать это для запуска команды минимальное количество раз:

find . -type f -name \*.ai -exec python ai2svg.py {} +

Если вы заботитесь только о файлах в текущем каталоге, вы можете использовать стандартный цикл для этого:

for file in *.ai
do
    python ai2svg.py "$file"
done
0

Правильный способ сделать это заключается в следующем:

find . -maxdepth 1 -type f -name '*.ai' -print0 | while read -d '' -r file; do python ai2svg.py "$file"; done

Обратите внимание на параметр -print0 команды find который вместе с -d '' в read все пробельные символы в именах файлов, включая переводы строк и табуляции.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .