macos: 利用 alfred 与 python 脚本实现一个简单的工作流/exam
用python脚本,结合参数,实现的一个简单工作流命令
背景
我需要一个命令,帮我完成2个功能
- 清理目录,建立空目录
- 对图片进行整理(压缩/重命名),然后导出
zip
包
脚本 hello.py
- clean: 清理目录,及初始化工作
- export: 导出以及压缩等活儿
import os
import glob
import sys
# get execute args
args = sys.argv
def export():
source_dir = './exam'
target_dir = './exam_export'
# copy target_dir to dist_dir
os.system(f'cp -R {source_dir}/* {target_dir}')
# 重命名
files = glob.glob(target_dir + '/*.png')
# sort by datetime reverse
files.sort(key=lambda x: os.path.getmtime(x))
for i, file in enumerate(files):
# zero padding left
index = str(i + 1).zfill(2)
# rename
os.rename(file, target_dir + '/%s.png' % index)
# # image min
os.system(f'cd {target_dir} && imc -o')
# # make a zip
os.system(f'zip -9 -r {target_dir}.zip {target_dir}')
print('🐠 export done.')
def clean():
source_dir = './exam'
target_dir = './exam_export'
os.mkdir(path=source_dir) if not os.path.exists(source_dir) else None
os.mkdir(path=target_dir) if not os.path.exists(target_dir) else None
# clean target dir
for f in glob.glob(target_dir + '/*'):
os.remove(f)
# clean source dir
for f in glob.glob(source_dir + '/*'):
os.remove(f)
print('🐠 clean done.')
def main():
if len(args) > 1:
cmd = args[1]
if cmd == 'export':
export()
if cmd == 'clean':
clean()
else:
print('Sub command is required.')
if __name__ == '__main__':
main()
命令行调用
# 脚本目录
cd ~/Downloads
# 清理
python hello.py clean
# 导出
python hello.py export