2016-03-16 6 views
0

фон:Почему мой «открытый» вызов не срабатывает иногда?

Я бег своей программы на Python под PyCharm на Windows 10 с тремя различными конфигурациями выполнения.

Все, кажется, проходят через основную часть программы, делая логическую работу без ошибок.

В конце программы есть попытка открыть дескриптор файла, который работает на двух конфигурациях запуска, но не один, несмотря на различные конфигурации, не влияющие на параметры этого вызова.

Детали:

Это кусок кода, что ошибки в одной из конфигураций.

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() после попытки открыть его.

Резюме:

Хотя ошибка происходит на линии, которая не должна опираться на контекст более широкой программы, контекст, тем не менее, кажется, есть эффект, и я не могу понять, почему.

Я считаю, что не должно быть никаких проблем с разрешением на запись вообще, так как оно работает для 2 из 3-х конфигураций.

У кого-нибудь есть мысли?

P.S. Если вам нужна дополнительная информация, я могу предоставить их. Учитывая запутанную природу этой проблемы, я не уверен точно, что необходимо.

+0

У вас есть разрешение на создание файла? Вы всегда закрываете файл после открытия или могут быть все еще активные дескрипторы файлов? Вы используете Linux, Mac или Windows? – MSeifert

+0

Я думаю, что я делаю, так как он работает для 2/3 конфигураций запуска. Я закрываю файл 'f.close()', и я использую Windows 10. Обновит вопрос. –

+0

Если вы запустите программу, когда нет «new_output.xml» - все еще не удается? –

ответ

1

Не проблема с кодом, как выясняется.

Для данной конфигурации с прерывистым прогоном PyCharm не устанавливал рабочий каталог.