我需要将很多 .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])
当文件名为“Profile test.ai”时。除了事先删除 .ai 文件名称中的所有空格外,还有其他方法吗?
谢谢。
答案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
答案2
正确的做法如下:
find . -maxdepth 1 -type f -name '*.ai' -print0 | while read -d '' -r file; do python ai2svg.py "$file"; done
注意-print0
选项find
与-d ''
in一起read
处理文件名中的任何空格字符,包括换行符和制表符。