Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows PermissionError:[WinError 5]_Windows_Python 3.x - Fatal编程技术网

Windows PermissionError:[WinError 5]

Windows PermissionError:[WinError 5],windows,python-3.x,Windows,Python 3.x,我正在尝试创建文件夹: import os mypath = (r'C:\Program Files\my_folder') if not os.path.isdir(mypath): os.makedirs(mypath) 我得到一个错误: mkdir(name, mode) PermissionError: [WinError 5] Access is denied: 'C:\\Program Files\\my_folder' 脚本没有写入程序文件文件夹的权限。在Win

我正在尝试创建文件夹:

    import os

mypath = (r'C:\Program Files\my_folder')
if not os.path.isdir(mypath):
   os.makedirs(mypath)
我得到一个错误:

mkdir(name, mode)
PermissionError: [WinError 5] Access is denied: 'C:\\Program Files\\my_folder'

脚本没有写入
程序文件
文件夹的权限。在Windows中,这是一个受非常高级别权限保护的文件夹,通常不应写入,除非由安装程序写入

假设您需要存储特定于机器的数据,请改用环境变量。请注意,在Python中访问环境变量时,不要使用
%
符号

import os
mypath = os.path.join(os.getenv('programdata'), 'my_folder')
if not os.path.isdir(mypath):
    os.makedirs(mypath)

print (mypath)
将创建文件夹,并输出路径:

C:\ProgramData\my_folder

如果需要为每个用户存储数据,请使用
%APPDATA%
环境变量。

我猜这是一个目录
SpecialFolder.ApplicationData path=C:\Users\patricka\AppData\Roaming SpecialFolder.MyDocuments path=\\zaw\Mydocs\patricka\My Documents
是的,它们是目录。看起来您的
MyDocuments
存储在网络驱动器上。在Python中,您应该使用环境变量,而不是引用的
System.environment.SpecialFolder
。能否向我展示完整的Python示例以及您的代码,如何为每个用户显示目录文件夹,我需要将此文件夹用于一个包含数据的文本文档。我试过了,但有错误
SyntaxError:(unicode错误)'UnicodeScape'编解码器无法解码位置48-49的字节:截断\uxxxxx转义
可能我做错了什么,windows 10我在答案中输入的代码在Python 2.7和3.5中工作。看起来你的代码有问题。我怀疑你在什么地方有个
\U
。例如,
C:\Users
\U
是一个Unicode转义序列。请参阅
os.getenv('PROGRAMDATA')
中包含驱动器信息。您只需要指定
my\u new\u文件夹
,而不是
C:\my\u new\u文件夹
。我已经更新了答案,将打印语句放入其中,以显示文件夹的创建位置。在您的代码中尝试一下,这样您就可以了解发生了什么。