无法删除/取消链接符号链接到python&中的目录。视窗

时间:2014-10-24 18:34:55

标签: python windows symlink

编辑

我使用mklink命令行在Widnows7上创建了一个目录的符号链接:

mklink /d books config

我试图用python 2.7删除它(仍在Windows上)。

>>> os.remove('books')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
    sym = symlink_to_dir
    os.unlink(sym) # 
WindowsError: [Error 5] Access is denied: 'books'

该机器没有限制,我是管理员, 我从Windows (del books)

删除它没有问题

删除文件的链接(与dir相反)没有问题。

为什么会这样?

修改&#34; del&#34;没有工作,它只是没有返回错误。

2 个答案:

答案 0 :(得分:3)

哎呀,我忽略了它:

因为它是一个指向目录的链接,windows与Linux不同,所以将符号链接视为一个目录,因此:

来自DOS的

c:\> rmdir symlink
来自python的

>>> os.rmdir( 'symlink' )

NOT “del symlink”,也不是“os.unlink()”,也不是“os.remove()”。

这就是Linux中的

$ mkdir a
$ ln -s a b
$ rm b          #ok, since a symlink is treated as a file

$ ln -s a b
$ rmdir b       # error, not a file
rmdir: failed to remove `b': Not a directory

答案 1 :(得分:1)

我会猜一猜。你所拥有的可能不是像* INX那样的符号链接,而是一个硬链接。您应该能够通过os.remove()删除硬链接。