我有一个简单的python脚本,该脚本正在从下载文件夹中移动文件。通过终端运行脚本时,脚本运行良好。当它通过启动运行时会发生此问题:
Traceback (most recent call last):
File "/Users/ben/Project/Automation/CleanDownload.py", line 11, in <module>
for f in listdir(downloadFolder):
OSError: [Errno 1] Operation not permitted: '/Users/ben/Downloads/'
知道为什么吗?
答案 0 :(得分:0)
和这个 https://apple.stackexchange.com/questions/339862/ls-operation-not-permitted-mojave-security
根据 Roger 去 进入系统偏好设置-> 安全性和隐私权
并授予对Terminal
的完全磁盘访问权限。
答案 1 :(得分:0)
您是否尝试授予/sbin/launchd
完整磁盘访问权限?
答案 2 :(得分:0)
这是我用来规避此问题的解决方法。我试图运行一个简单的Shell脚本,但是相同的解决方法将适用于Python脚本。概括地说,涉及的步骤是:
更多详细信息:
chmod +x
),并且在脚本顶部具有正确的#!
行(例如#!/bin/bash
) 。在此示例中,我将使用~/scripts/organize-screenshots.sh
处的脚本将屏幕快照从桌面移动到Google云端硬盘目录:#!/bin/bash
user_dir="/Users/soxley"
find "$user_dir"/Desktop -name 'Screen Shot *.png' -exec mv {} "$user_dir"/Google\ Drive/pictures/screenshots/ \;
/bin/bash -c "$1"
作为脚本正文(请参见下面的屏幕截图)run-script.app
)open -a run-script.app organize-screenshots.sh
ProgramArguments
更新您的.plist:<key>ProgramArguments</key>
<array>
<string>open</string>
<string>-a</string>
<string>/Users/soxley/scripts/run-script.app</string>
<string>/Users/soxley/scripts/organize-screenshots.sh</string>
</array>