2015-06-22 231 views
1

我试图编写这个程序来读取文件中的目录并读取文件的第一行。如果它找到某些关键字然后重命名该文件,请复制该文件,并将其更多地复制到相应的目录中。Errno 13权限被拒绝:?

import os 
import shutil 
import sys 

os.chdir('c:\\source') 

sourcePattern = '2:I103' 
targetDirMt = 'mt' 
targetDirF21 = 'F21' 


curFile = open(os.path.abspath(os.curdir) + '\\' +'ack_nak', 'r+') 

for line in fileinput.input (curFile):  #(os.curdir, 'r+') 
    if sourcePattern in curFile : 
     os.rename(file, '2:I103-'+file) 

    if targetDirMt in curFile : 
     shutil.move(file,'C:\\target\\mt') 

    if targetDirF21 in curFile : 
     shutil.move(file,'C:\\target\\F21') 

为什么我得到这个?

Traceback (most recent call last): 
    File "C:\Python34\project1.py", line 12, in <module> 
    curFile = open(os.path.abspath(os.curdir) + '\\' +'ack_nak', 'r+') 
PermissionError: [Errno 13] Permission denied: 'c:\\source\\ack_nak' 
+0

这可能是路径的问题,尝试将目录分隔符更改为简单的正斜杠('/')。像:'c:/ source/ack_nak' – Koshinae

+0

我得到相同的错误 –

+0

这是ack_nak文件或目录吗?你不能“打开”一个目录。看看'os.walk',这可能会有所帮助。 – Koshinae

回答

-2

尝试使用超级用户(sudo)命令。缺乏权限一般可以通过这种方式来弥补。但它会提示您输入用户名和密码,因此您可能需要解决该问题。

IOError: 13, 'Permission denied' when writing to /etc/hosts via Python - 在这里阅读答案,他们解释了所需的代码。

Open a file as superuser in python - 这是一些更深入的信息。

祝你好运。

+0

从用户的错误消息可以看出,他在Windows上运行,而不是在UNIX/Linux/POSIX上运行。 –

+0

@Rob你看过第二个链接和第一个答案吗?它深入地解释了如何在Windows中执行类似的操作(以管理员身份运行),以解决相同的问题。在你投降之前,请查看链接。谢谢。 – Ian

相关问题