问题
I have been using a great open-source python script by GitHub user @hanikesn (see below) that converts a single WOFF file back into OTF format via command line (Terminal on Mac OS X).
As it is now, I drag-and-drop the script to Terminal, then drag-and-drop a WOFF file to Terminal, press Enter, and the script creates an OTF in the same directory. The script can be invoked manually, but I find it much easier and much faster to drag-and-drop. However as a typographer, I work with large font-families, some of them have over 100 styles each, so I need a batch conversion tool. I know there are some tools online, but these usually have a size limit unless you pay for the service, and the results are never as consistent as this script. Besides, I would like to have an offline tool.
I would like to modify it to run on a directory (folder of WOFFs) rather than a single file. Ideally I would like to drag-and-drop the script into terminal, and then drag-and-drop a folder. The script should only attempt to convert files with the .woff extension.
When I asked the creator of the script, he said "This can easily be done with a simple one line shell script:
for file in *.woff; do woff2otf.py $file; done
However I don't know how to implement this. I am not a programmer, but I've had to work with some basic python scripting in my typography projects. So, please explain it to me like I'm 5.
woff2otf.py
回答1:
If you want create an Drag&drop app, you could:
- open the Automator.app
- select "Application"
- in the left-side Library find the
Filter Finder Items
action - drag it into the right
- add the
extenstion is
woff condition - in the Library find the
Run Shell Script
action - change the
Pass input
popup to as arguments - drag&drop the your
woff2otf.py
into the place of the echo (you will get it's full path name) - save the app somewhere as
woff2otf.app
- congratz - you're done with your 1st OS X application. :)
Just drag the woff
files into the application icon and it should convert them. I can't test it, because i havent installed python3
.
The final app should be as in the following screenshot:
EDIT:
If your python3
command isn't in the standard command search $PATH
, you must change the line:
/path/to/the/woff2otf.py "$f"
to/path/to/your/python3 /path/to/the/woff2otf.py "$f"
I installed python3
using anyenv
- e.g. it wont help you. Therefore my python3 is:
$ type python3
python3 is /opt/anyenv/envs/pyenv/shims/python3
so the line in the shell script (for me) looks like:
/opt/anyenv/envs/pyenv/shims/python3 ~/bin/woff2otf.py "$f"
But, your installation is surely different.
Also could help:
- where is login bash script or ~/.profile MAC
- Check if a program exists from a Bash script
- How to edit path variable in ZSH
- How to show zsh function definition (like bash "type myfunc")?
- Where to place $PATH variable assertions in zsh?
- and more like the above
回答2:
You are using zsh
, aren't you? so to loop on your WOFF files you could to do
for f in *.woff ; /complete/path/to/your/script.py $f
来源:https://stackoverflow.com/questions/34185115/modify-python-script-to-batch-convert-all-woff-files-in-directory