2013-02-09 197 views
1

我想要做的是從一個文件夾內的文件夾中取出一個.mp3文件。多次。
一切都運行完美,除了當我嘗試將文件複製到一個新的文件夾(已經存在),它給:[錯誤13]許可被拒絕:IO錯誤:[錯誤13]權限被拒絕:我有權限?

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() 

我知道我有機會複製它手動,我是我的電腦管理員,所以我不知道爲什麼會發生這種情況。幫助將不勝感激。

+0

運行腳本的管理。您可能必須以管理員身份運行'cmd.exe'才能執行此操作。 – Blender 2013-02-09 07:59:33

+1

您應該使用原始字符串作爲路徑,或使用'os.path.join' – 2013-02-09 08:01:09

+0

在較新的Windows上,如果UAC處於打開狀態,則作爲管理員並不一定意味着使用管理員權限運行每個命令。使用管理員權限運行也需要使用「以管理員身份運行」(有點像在UNIX上使用'sudo')你是否這樣做? – 2013-02-09 08:09:13

回答

2

默認情況下,程序無權寫入Program FilesProgram Files (x86)。將文件保存到其他位置或授予程序權限(例如,以管理員身份運行它)。

(shoutouts俄勒岡州立大學!)

+0

另外值得一提的是,我嘗試從桌面上的項目(在文件夾中)複製其他項目到桌面上的另一個文件夾。我仍然得到相同的錯誤,使用與上面相同的代碼。 :C – Pumear 2013-02-09 20:41:43