gpt4 book ai didi

windows - 在 Anaconda Prompt 中访问文件时权限被拒绝

转载 作者:可可西里 更新时间:2023-11-01 10:32:02 27 4
gpt4 key购买 nike

我有一个访问某些文件的 Python 脚本,例如一行代码将一些文本附加到 .txt 文件。它在普通的 cmd.exe 中正确运行,有或没有 Admnistrator 访问权限。但是,在使用 Anaconda Prompt 或从 Anaconda Navigator 打开的 cmd.exe 时,它​​会在 open('path/to/file', ' a+') 行。

我正在寻找 Anaconda 的 python 无法访问文件的原因的解决方案。使用日志模块中的函数 handlers.TimedRotatingFileHandler() 的另一行代码也抛出相同的错误。

一些可能有用的信息:

  • 我有两个 Anaconda 环境,一个使用 python 2.7,另一个使用 python 3.6.6,都抛出错误;
  • 我已经安装了 Anaconda 3,但没有将 anaconda 添加到我的 PATH,因为它在安装程序中被推荐;
  • 我的 PATH 的 python,在非 anaconda cmd.exe 中运行的版本,也是 3.6.6;
  • 我使用 Windows 10。

编辑:

好吧,我想完成的事情似乎有些困惑。我正在用文件夹中的每个 .jpg 文件递归地制作一个文本文件,然后是文件名的拆分。对于找到的每个文件,文本文件应具有:“path/to/XY_file_XY.jpg 文件”。这些分割代表我正在训练的神经网络的图像标签。

这是我创建这个文本文件的代码:

import glob

class DBSetter(object):
def __init__(self, rootPath = 'C:\\Users\\Victor.Lundgren\\Google Drive\\Mestrado\\VC\\Projeto\\data\\mnt'):
self.path = rootPath
return

def setDB(self, extension = '.jpg', splitFileName = True, splitDilimiter = '_', splitPosition = 1):
query = self.path+'\\**\\*'+extension
print(query)
fileList = glob.glob(query, recursive = True)
sampleFileText = ''
for file in fileList:
word = file.split('\\')[-1]
if splitFileName:
word = word.split(splitDilimiter)[splitPosition]
sampleFileText += file+' '+word+'\n'
print('Sample File Text created.')
sampleFile = open(self.path+'\\sample.txt', 'a+')
sampleFile.write(sampleFileText)
sampleFile.close()
return

例如,让我们在 ma​​in.py 中创建一个 DBSetter 对象,并在简单的 cmd.exe 中使用默认的 Python (3.6.6) 和 Anaconda 的 Python (3.6.6) 测试 ir在 Anaconda 提示中:

from utils import database_setter

setter = database_setter.DBSetter('C:\\Users\\Victor.Lundgren\\Pictures\\Trabalho\\ASA') #choosing this folder for this example because it has few files in it.
setter.setDB(extension = '.png', splitFileName = False)

这里我们在调用 ma​​in.py 的简单 cmd.exe 中有我们的 cmd 历史:

> Microsoft Windows [versão 10.0.16299.492] (c) 2017 Microsoft
> Corporation. Todos os direitos reservados. Clink v0.4.9 [git:2fd2c2]
> Copyright (c) 2012-2016 Martin Ridgers http://mridgers.github.io/clink
>
>
> C:\Users\Victor.Lundgren>cd C:\Users\Victor.Lundgren\Google Drive\Mestrado\VC\Projeto
>
> C:\Users\Victor.Lundgren\Google Drive\Mestrado\VC\Projeto>Python
> __main__.py C:\Users\Victor.Lundgren\Pictures\Trabalho\ASA\**\*.png Sample File Text created.
>
> C:\Users\Victor.Lundgren\Google Drive\Mestrado\VC\Projeto>

现在从 Windows 菜单执行 Anaconda Promp 并使用我的 Python 3.6.6 环境运行相同的东西:

> Clink v0.4.9 [git:2fd2c2] Copyright (c) 2012-2016 Martin Ridgers
> http://mridgers.github.io/clink
>
>
> (base) C:\Users\Victor.Lundgren>cd C:\Users\Victor.Lundgren\Google Drive\Mestrado\VC\Projeto
>
> (base) C:\Users\Victor.Lundgren\Google Drive\Mestrado\VC\Projeto>activate Py3
>
> (Py3) C:\Users\Victor.Lundgren\Google Drive\Mestrado\VC\Projeto>Python
> __main__.py C:\Users\Victor.Lundgren\Pictures\Trabalho\ASA\**\*.png Sample File Text created. Traceback (most recent call last): File
> "__main__.py", line 6, in <module>
> setter.setDB(extension = '.png', splitFileName = False) File "C:\Users\Victor.Lundgren\Google Drive\Mestrado\VC\Projeto\utils\database_setter.py", line 19, in setDB
> sampleFile = open(self.path+'\\sample.txt', 'a+') PermissionError: [Errno 13] Permission denied:
> 'C:\\Users\\Victor.Lundgren\\Pictures\\Trabalho\\ASA\\sample.txt'
>
> (Py3) C:\Users\Victor.Lundgren\Google Drive\Mestrado\VC\Projeto>

最佳答案

在多次尝试重新安装 Anaconda 后,我发现了这个问题。我的防病毒软件 (Bitdefender) 专门阻止了 Anaconda 安装的 Python 版本,并且出于某种原因没有显示任何关于它被阻止的通知,删除阻止使其正常运行。

关于windows - 在 Anaconda Prompt 中访问文件时权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51145836/

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