gpt4 book ai didi

python - os.listdir 看不到我的目录

转载 作者:可可西里 更新时间:2023-11-01 14:41:21 25 4
gpt4 key购买 nike

我正在编写一个 python 脚本,该脚本在 Windows 8.1 机器上安装 802.1x 证书。此脚本在 Windows 8 和 Windows XP 上运行良好(尚未在其他机器上尝试过)。

我已经隔离了这个问题。它与清除文件夹有关

"C:\Windows\system32\config\systemprofile\AppData\LocalLow\Microsoft\CryptURLCache\Content"

问题是我在这个文件夹上使用模块 os 和命令 listdir 来删除其中的每个文件。然而,listdir 错误,说该文件夹不存在,而它确实存在。

问题似乎是 os.listdir 看不到 LocalLow 文件夹。如果我制作一个两行脚本:

import os

os.listdir("C:\Windows\System32\config\systemprofile\AppData")

结果如下:

['Local', 'Roaming']

如您所见,LocalLow 缺失。

我认为这可能是权限问题,但我很难弄清楚下一步可能是什么。我以管理员身份从命令行运行该进程,但它根本看不到该文件夹​​。

提前致谢!

编辑:将字符串更改为 r"C:\Windows\System32\config\systemprofile\AppData"、"C:\Windows\System32\config\systemprofile\AppData"或 C:/Windows/System32/config/systemprofile/AppData”都产生相同的结果

编辑:这个问题中的另一个不寻常的问题:如果我在那个位置手动创建一个新目录,我也无法通过 os.listdir 看到它。此外,我无法通过 Notepad++ 中的“另存为..”命令浏览到 LocalLow 或我的新文件夹

我开始认为这是 Windows 8.1 预览版中的错误。

最佳答案

我最近遇到了这个问题。

我发现它是由 Windows file system redirector 引起的

您可以查看以下 python 代码段

import ctypes

class disable_file_system_redirection:
_disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
_revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection
def __enter__(self):
self.old_value = ctypes.c_long()
self.success = self._disable(ctypes.byref(self.old_value))
def __exit__(self, type, value, traceback):
if self.success:
self._revert(self.old_value)


#Example usage
import os

path = 'C:\\Windows\\System32\\config\\systemprofile\\AppData'

print os.listdir(path)
with disable_file_system_redirection():
print os.listdir(path)
print os.listdir(path)

引用:http://code.activestate.com/recipes/578035-disable-file-system-redirector/

关于python - os.listdir 看不到我的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19187812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com