python - Pycharm 和 stock IDLE [Mac] 之间的 os.popen() 结果不同
问题描述
我编写了一个脚本来根据照片的拍摄日期重命名照片。它在 mac 上运行并使用phil harvey 的 CLI exiftool。
产生问题的命令如下:
os.popen("exiftool " + file path)
我使用 Pycharm CE 编写了脚本。我使用 exiftool 是因为它产生了最好的结果,并且在当时是最容易使用的。使用上面提到的命令,我得到了 exiftool 很好地格式化了所有元数据,只需将其分离并放入一个列表中。在编写脚本之前,我在 Pycharm CE 的控制台中尝试了所有操作。
Pycharm 的脚本和控制台都运行良好。但是,我最近尝试使用 Python 中的 IDLE 运行脚本。脚本失败,因为从控制台返回的总是一个空字符串。经过进一步研究,我使用了该subprocess.run()
方法。错误是
CompletedProcess(args='exiftool PATH', returncode=127, stdout=b'', stderr=b'/bin/sh: exiftool: command not found\n')
输出也是空的。
我现在的问题是:
- 为什么 Pycharm CE 的控制台和解释器能找到 exiftool,而 python 的控制台和 IDLE 却没有?
- 有没有办法包含 exiftool 的安装位置,以便通过IDLE 和控制台中的
os.popen()
/方法找到它?subprocess.run()
非常感谢您的帮助
阿里索特2000
解决方案
在命令提示符下,键入which exiftool
以查找可执行文件的完整路径。然后,不要只调用exiftool
Python 脚本,而是使用完整路径。
推荐阅读
- azure - 创建后端地址池时配置状态为空白
- java - 使用 iText 在 Java 中合并 PDF 时出现意外的不同页面大小
- python - 将数据框python中每一行的前h值乘以k
- sql - 带有子查询语法错误的红移更新查询
- vbscript - 日期之间的经典 ASP 工作日数
- java - 添加实时数据库后活动崩溃
- kubernetes - 本地多区 Kubernetes 联邦集群
- java - java.util.NoSuchElementException 的问题:找不到行
- jquery - 在列表项中设置唯一 href 属性的 jQuery 代码
- sas - 如何在 SAS 中创建时间图?