为什么我的“开放”电话有时会失败?

时间:2016-03-16 10:25:46

标签: python python-3.x pycharm

背景

我在Windows 10上的PyCharm下运行我的Python程序,有三种不同的运行配置。

所有这些似乎都可以很好地完成程序的大部分工作,无错误地完成逻辑工作。

在程序结束时,尝试打开文件句柄,该句柄适用于两个运行配置,但不是一个,尽管不同的配置不会影响此调用的参数。

详细信息:

这是在其中一个配置中出错的代码段。

f = open(global_args[2], "w")
# global_args[2] is always 'new_output.xml'. I've thoroughly checked this

错误如下。

Traceback (most recent call last):
  File "C:/Projects/obfuscated/trunk/PythonXMLGenerator/generate_xml.py", line 270, in <module>
    instance.main()
  File "C:/Projects/obfuscated/trunk/PythonXMLGenerator/generate_xml.py", line 235, in main
    f = open(global_args[2], "w")
PermissionError: [Errno 13] Permission denied: 'new_output.xml'

仅仅是为了获取更多信息,虽然我觉得它不相关,但这里有两个运行配置。

//Not working
1.0 new_output.xml localdb (LocalDB)\MSSQLLocalDB (2) x x x "0:Upload,1:Modify,2:Delete,3:Download,4:ApplyTemplate,5:RemoveTemplate"
//Working
1.0 new_output.xml mysql localhost (2) obfuscated obfuscated obfuscated "0:Upload,1:Modify,2:Delete,3:Download,4:ApplyTemplate,5:RemoveTemplate"

在尝试打开文件句柄后,用f.close()关闭文件句柄可能没什么价值。

回顾:

虽然错误发生在不应该依赖更广泛程序的上下文的行上,但是上下文似乎有效,我无法弄清楚原因。

我认为一般来说写入权限不应该有任何问题,因为它适用于3种配置中的2种。

有人有任何想法吗?

P.S。如果需要更多细节,我可以提供。鉴于这个问题的混乱性,我不确定究竟是什么必要。

1 个答案:

答案 0 :(得分:1)

结果不是代码问题。

对于这个特定的中断运行配置,PyCharm没有设置工作目录。