如何在Mac OS X上摆脱'IOError:13''权限被拒绝''

时间:2012-06-20 22:14:27

标签: python macos osx-lion permission-denied ioerror

这是我正在尝试在Mac OS X上运行的代码:

import getpass #Needed for fetching username
import shutil #Needed for moving Files
import os
var_username = getpass.getuser() #gets username and returns as variable
source_file = r"/Users/%s//Downloads/LogNLock/com.lognlock.loginhook.plist" %(var_username) #the destination of the source file
destination = r"/Library/LaunchAgents" #the target destination for the file to go
shutil.copy(source_file, destination) #moves the source file to the destination folder

我已经四处搜索,无法弄清楚为什么它不起作用。 背景信息:它在将文件从桌面移动到文档时起作用,但我认为我需要以某种方式获得root用户权限。我现在在管理员帐户上。

1 个答案:

答案 0 :(得分:9)

您尝试将文件复制到的文件夹的权限不足以让您以正在运行脚本的用户身份执行此操作。这不是一个Python问题。您需要授予用户对该文件夹的写权限,或者您需要以root身份运行该脚本。

以root身份运行脚本:

sudo python your_python_script.py

我相信你需要成为管理员用户才能工作。 'sudo'是一个命令,意思是“以超级用户身份执行此操作”。

要更改文件夹的权限,您可以尝试

sudo chmod a+rw /path/to/folder/that/you/want/to/write/to

同样,您将以超级用户身份执行此操作,chmod是更改文件或目录权限的命令。 'a + rw'翻译为'授予所有用户读/写权限。这可能是一个坏主意......但听起来你只是在你的机器上本地运行它。