【问题标题】:IO Error: [Errno 13] Permission denied: I do have permissions?IO 错误:[Errno 13] 权限被拒绝:我有权限吗?
【发布时间】:2013-01-25 00:26:19
【问题描述】:

我想要做的是从文件夹中的文件夹中获取一个 .mp3 文件。多次。
一切都很完美,除了当我尝试将文件复制到一个新文件夹(已经存在)时,它给出:[Errno 13] Permission denied:

import os, shutil

def startup():  
    os.system("cls")  
    print "\n osu! Extractor."  
    print "\n Press ENTER to begin."  
    raw_input()  
    for basename in os.listdir('C:\Program Files (x86)\osu!\Songs'):  
        basename2 = ('C:\Program Files (x86)\osu!\Songs\\' + basename)  
        for song in os.listdir(basename2):  
            if song.endswith('.mp3'):  
                print song  
                raw_input()  
                shutil.copy(basename2, 'C:\Program Files (x86)\osu!\Extracted_Songs')  

if __name__ == '__main__':  
    startup()

我知道我可以手动复制它,而且我是计算机上的管理员,所以我不知道为什么会发生这种情况。非常感谢您的帮助。

【问题讨论】:

  • 以管理员身份运行脚本。您可能需要以管理员身份运行 cmd.exe 才能执行此操作。
  • 你应该使用原始字符串作为路径,或者使用os.path.join
  • 在较新的 Windows 上,如果打开了 UAC,作为管理员并不一定意味着以管理员权限运行每个命令。以管理员权限运行还需要使用“以管理员身份运行”(有点像在 UNIX 上使用 sudo)你在这样做吗?
  • @Blender,您必须通过 cmd 运行它是对的,但您能告诉我如何执行此操作的说明吗?我已经运行了 python.exe。
  • @Burhan Khalid 我是 Python 新手,您介意告诉我如何操作吗?我查看了 os.path.join 的文档,但其中大部分让我感到困惑。一个例子会很好:P

标签: python file permissions copy


【解决方案1】:

默认情况下,程序无权写入Program FilesProgram Files (x86)。将文件保存在其他位置或授予您的程序权限(例如,以管理员身份运行)。

(向奥苏大喊!)

【讨论】:

  • 另外值得一提的是,我尝试将桌面上的项目(文件夹中)的其他内容复制到桌面上的另一个文件夹中。使用与上面相同的代码,我仍然遇到相同的错误。 :c
猜你喜欢
  • 2018-07-19
  • 2016-12-25
  • 1970-01-01
  • 1970-01-01
  • 2017-04-20
  • 2011-06-11
  • 2014-07-15
  • 2015-07-17
  • 2016-07-25
相关资源
最近更新 更多