编辑
我使用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;没有工作,它只是没有返回错误。
答案 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()删除硬链接。