繁体   English   中英

python open()-拒绝访问

[英]python open() - access denied

这是我关于stackoverflow的第一篇文章,因此,如果出现问题,我很想学习!

我正在使用python为Cinema 4d编程一个插件。 一切都可以在Mac上运行,但是我在Windows上遇到的问题有待解释。

如果在renderserver上进行渲染,则插件需要服务器的路径。 我希望用户输入一次路径,然后将其存储在.txt文件中。

对于c4d,通过将插件拖放到例如plugin文件夹中的方式来安装插件:

C:/程序文件/ Maxon / Cinema4D /插件/ NewPluginGoesHere

为了使所有内容保持良好和整洁,我也希望在插件文件夹中包含pathToServer.txt(仅包含路径的一行文本文件)。 当将插件安装(放到)文件夹中时,.txt文件已经存在->未由插件创建。

问题来了:

我打开并写入文件

pathFile = open(pathToPathFile, "w")
pathFile.write(pathToServerFolder)

在Mac上工作正常,但会抛出

IOError: [Errno 13] Permission denied: 'C:\\Program Files\\MAXON\\CINEMA 4D R14\\plugins\\MultiLayerRender\\Renderserverpath.txt'

在Windows上。

我对使用python执行此类任务(例如文件管理)缺乏经验。

然后,我尝试了以下方法:

pathFile = subprocess.Popen(pathToPathFile, stdin = subprocess.PIPE, stdout = subprocess.PIPE, shell = True)
pathFile.communicate(input = pathToServerFolder)
pathFile.stdin.close()

这没有给我一个错误,但它似乎也没有做任何事情:/

我读了有关子进程的python文档,但是那的确对我没有任何帮助,即使有的话,它也让我感到困惑。

我注意到,我还需要在“管理模式”下运行我的代码编辑器,以使其具有直接保存到上述目录中的plugin文件夹中的权限。 似乎“程序文件”文件夹中的文件受到某种保护。 另外,此插件将安装在Mac或Windows的多台不同计算机上,因此,例如,不能更改对programm文件文件夹的许可。 最后,必须拖放才能安装它。

有谁知道如何做到这一点?

您需要提升的权限才能在Windows上写入程序文件,但是您的插件不包含它们。 我会考虑只使用另一个目录。

许多渲染解决方案要求您在某个位置指定目录,因此我认为这不是一个大问题。 例如,模501和601(大概是701)需要在某个目录下进行数据共享。 V-Ray for Maya或多或少要求您将场景文件以分布式模式放置在共享驱动器上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM