修改Python脚本批量转换目录下所有“WOFF”文件

2023-12-05

我一直在使用 GitHub 用户@hanikesn(见下文)编写的一个很棒的开源 python 脚本,该脚本通过命令行(Mac OS X 上的终端)将单个 WOFF 文件转换回 OTF 格式。

现在,我将脚本拖放到终端,然后将 WOFF 文件拖放到终端,按 Enter 键,脚本会在同一目录中创建一个 OTF。该脚本可以手动调用,但我发现拖放更容易、更快。然而,作为一名印刷师,我使用大型字体系列,其中一些字体系列有超过 100 种样式,因此我需要一个批量转换工具。我知道有一些在线工具,但这些工具通常有大小限制,除非您支付服务费用,并且结果永远不会像此脚本那样一致。另外,我想要一个离线工具。

我想修改它以在目录(WOFF 文件夹)而不是单个文件上运行。理想情况下,我想将脚本拖放到终端中,然后拖放文件夹。该脚本应该只尝试转换扩展名为 .woff 的文件。

当我询问该脚本的创建者时,他说“这可以通过简单的一行 shell 脚本轻松完成:

for file in *.woff; do woff2otf.py $file; done

但是我不知道如何实现这一点。我不是程序员,但我必须在我的排版项目中使用一些基本的 python 脚本。所以,请像我5岁一样向我解释一下。

woff2otf.py


如果您想创建拖放应用程序,您可以:

  • 打开 Automator.app
  • 选择“应用程序”
  • 在左侧库中找到Filter Finder Items action
  • 将其拖到右侧
  • add the extenstion is woff状况
  • 在图书馆找到Run Shell Script action
  • 改变Pass input弹出到作为参数
  • 拖放您的woff2otf.py进入 echo 的位置(您将获得它的完整路径名)
  • 将应用程序保存在某处woff2otf.app
  • 恭喜 - 您已经完成了第一个 OS X 应用程序。 :)

只需拖动woff文件到应用程序图标中,它应该将它们转换。由于我还没有安装,无法测试python3.

最终的应用程序应如以下屏幕截图所示:

enter image description here

编辑: 如果你的python3命令不在标准命令搜索中$PATH,您必须更改该行:

  • /path/to/the/woff2otf.py "$f" to
  • /path/to/your/python3 /path/to/the/woff2otf.py "$f"

我安装了python3 using anyenv- 例如它不会帮助你。因此我的 python3 是:

$ type python3
python3 is /opt/anyenv/envs/pyenv/shims/python3

所以 shell 脚本中的行(对我来说)看起来像:

/opt/anyenv/envs/pyenv/shims/python3 ~/bin/woff2otf.py "$f"

但是,您的安装肯定有所不同。

还可以帮助:

  • 登录 bash 脚本或 ~/.profile MAC 在哪里
  • 从 Bash 脚本检查程序是否存在
  • 如何在ZSH中编辑路径变量
  • 如何显示 zsh 函数定义(如 bash“type myfunc”)?
  • 在 zsh 中哪里放置 $PATH 变量断言?
  • 以及更多类似上面的内容
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修改Python脚本批量转换目录下所有“WOFF”文件 的相关文章

随机推荐

  • 模板编程:对重载函数的不明确调用

    我正在实现排序算法作为个人训练 没有作业 我有以下代码 不包括导入等 template
  • 检索实体框架中的存储过程输出参数始终为空

    C code public List
  • 为什么按值参数被排除在 NRVO 之外?

    Imagine S f S a return a 为什么不允许别名a和返回值槽 S s f t S s t can t generally transform it to this 如果以下情况的复制构造函数 规范不允许进行此转换 S有副作
  • 如何使用flexbox制作垂直列表2列[重复]

    这个问题在这里已经有答案了 我尝试使用 Flexbox 制作 2 列列表和垂直顺序 ul li item 1 li li item 2 li li item 3 li li item 4 li li item 5 li li item 6
  • Gstreamer:gst_element_factory_make():总是失败并返回 NULL:Qt5

    我的问题是 我无法创建 Gstreamer 元素 我正在创造Gstreamer项目使用Qt 5 2 1 我在做什么 gst init NULL NULL GstElement m pipeline gst pipeline new pipe
  • 如何使用java访问远程mysql数据库

    我已经开发了一个JAVA SWING应用程序 我想将此应用程序安装在几台电脑其中所有可以访问互联网 那么我应该把 MYSQL 数据库放在哪里呢 所有这些计算机应该有能力通过互联网访问同一数据库 出于安全 身份验证授权 加密 和性能原因 允许
  • 使用 EXEC 的结果创建新表

    我正在尝试获取结果EXEC查询并将它们放入我的 SQL Server 2017 数据库中的表中 我知道以前也有人问过类似的问题here here and here 但我还没有找到有效的解决方案 The EXEC查询本身运行得很好 并且结果正
  • 从大数据帧中采样小数据帧

    我试图从给定的数据帧中对数据帧进行采样 以便变量的每个级别都有足够的样本 这可以通过按级别分离数据帧并从每个级别中分离样本来实现 我想ddply 数据帧到数据帧 会为我做到这一点 举一个最简单的例子 set seed 1 data1 lt
  • 编解码器无法解码字节 0x81

    我有一段简单的代码 file open filename r encoding utf 8 num lines sum 1 for line in open filename 我只是想获取文件中的行数 但是我不断收到此错误 我正在考虑跳过
  • 干净的 XML 序列化分层、递归数据结构

    我有这门课 XmlRoot menuItem public class MenuItem XmlAttribute text public string Text get set XmlAttribute isLink public boo
  • 如何从QTableView中获取选定的行号?

    我是 QT 新手 我在用FrozenTabelWidget它源自于QTableView 如何获取选定的行号 如果索引发生变化 用户单击任何单元格 那么我需要获取该单元格行号 我的代码如下 freezetablewidget cpp incl
  • MVC4 / DotNetOpenAuth 中的自定义 OAuth 客户端 - 缺少访问令牌密钥

    我目前正在为我的应用程序实现 Dropbox OAuth 客户端 这是一个相当轻松的过程 直到我到达终点 授权后 当我尝试访问用户数据时 我会从 Dropbox 收到关于令牌无效的 401 消息 我在 Dropbox 论坛上询问 看起来我的
  • MySQL - 删除时外键在非空字段中设置为空

    这可能是一个微不足道的问题 但在外键约束方面我仍然有点笨拙 所以我想确定一下 假设我有一张桌子countries与田野country id PK 和name 和一张桌子cities与田野city id PK name and country
  • 同时移动2个表格

    我在这里有点卡住了 我试图同时移动 2 个表单 而不使用 OnMove LocationChanged Docking 等 与它们的位置交互的唯一方法是重写 WndProc 可能有帮助的是 表单 A 是表单 B 的所有者 因此 每当移动 A
  • 如何终止 PHP 会话?

    我正在编写一个社交网站 并且正在尝试找出 PHP 会话 在登录页面的顶部 我调用session destroy 在新用户正式注册为用户的页面和用户主页 我调用session start 当用户注销时 他们会链接到具有 session des
  • Reporting Services 将多个工作表导出到 Excel

    我目前正在构建一个 MS Reporting Services 报告 该报告可呈现为 Excel 我试图弄清楚如何设置报告 以便它在报告上创建数据的多个工作表 选项卡 据我所知 在报告中输入分页符会为您提供一个新的工作表 但是 有没有办法命
  • Javascript Array.prototype.filter() 不起作用

    我在客户端上运行这段代码来过滤事件列表 if res eventList filter function event const out res find function visibility return visibility ID e
  • 固件错误:Access-Control-Allow-Origin

    我正在调用 contextBroker 它给了我这个错误 Response to preflight request doesn t pass access control check No Access Control Allow Ori
  • 如何仅在Python中设置模块的日志记录级别?

    我在用logging info输出有关我的脚本正在执行的操作和我正在使用的信息logging basicConfig level logging INFO 启用此功能 和这个 logging basicConfig level loggin
  • 修改Python脚本批量转换目录下所有“WOFF”文件

    我一直在使用 GitHub 用户 hanikesn 见下文 编写的一个很棒的开源 python 脚本 该脚本通过命令行 Mac OS X 上的终端 将单个 WOFF 文件转换回 OTF 格式 现在 我将脚本拖放到终端 然后将 WOFF 文件