问题陈述:
我有一个在Windows 10上运行的python 3.8.5脚本,它处理来自网络驱动器上多个位置的大文件,并创建包含分析结果图的.png文件。所有图形都存储在同一网络驱动器上的单个目标文件夹中。它看起来有点像这个
源文件:\drivesrc1src1.txt
\drivesrc2src2.txt
\drivesrc3src3.txt
输出文件夹:\drivedestout1.png
\drivedestout2.png
\drivedestout3.png
有时,我们需要重新绘制原始源文件,并详细检查数据跟踪的一部分。这涉及到在正确的文件夹中查找源文件。源文件名是长的字母数字字符串,所以这个过程很乏味。为了减少繁琐,我想创建到原始源文件的符号链接,并将它们与.png文件并排保存。输出文件夹将看起来像这个
输出文件:
\drivedestout1.png
\drivedestout1_src.txt
\drivedestout2.png
\drivedestout2_src.txt
\drivedestout3.png
\drivedestout3_src.txt
其中\drivedestout1_src.txt
是到\drivesrc1src1.txt
等的符号链接。
我正试图通过实现这一目标
os.symlink('//drive/dest/out1_src.txt', '//drive/src1/src1.txt')
然而,无论我尝试什么,我都会得到
PermissionError:[WinError 5]拒绝访问
我尝试过从提升的shell运行脚本,启用开发人员模式,并运行
fsutil behavior set SymlinkEvaluation R2R:1
fsutil behavior set SymlinkEvaluation R2L:1
但似乎什么都不起作用。在本地驱动器(例如(上创建符号链接绝对没有问题
os.symlink('C:/dest/out1_src.txt', '//drive/src1/src1.txt')
但这并不能实现我的目标。我也尝试过根据上面的在本地驱动器上创建链接,然后用将它们复制到网络位置
shutil.copy(src, dest, follow_symlinks = False)
并且它以相同的错误消息失败。从升高的外壳直接在外壳中完成同样的事情的尝试也失败了;访问被拒绝";错误消息
mklink \drivedestout1_src.txt \drivesrc1src1.txt
这似乎是某种类型的windows权限错误。然而,当我在shell中运行fsutil behavior query SymlinkEvaluation
时,我会得到
本地到本地符号链接已启用
本地到远程符号链接已启用
启用了从远程到本地的符号链接
远程到远程符号链接已启用
知道如何解决这个问题吗?我已经在谷歌上搜索了几个小时,根据我所读到的一切,它应该是有效的,只是它没有。
在承载newtork共享的PC上打开secpol.msc,导航到本地策略-用户权限分配-创建符号链接并添加用于连接到网络共享的帐户。您需要从共享文件夹注销(控制面板-所有控制面板项目-凭据管理器,或者您可能必须重新启动两台计算机(,然后重试。