фон:Почему мой «открытый» вызов не срабатывает иногда?
Я бег своей программы на 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. Если вам нужна дополнительная информация, я могу предоставить их. Учитывая запутанную природу этой проблемы, я не уверен точно, что необходимо.
У вас есть разрешение на создание файла? Вы всегда закрываете файл после открытия или могут быть все еще активные дескрипторы файлов? Вы используете Linux, Mac или Windows? – MSeifert
Я думаю, что я делаю, так как он работает для 2/3 конфигураций запуска. Я закрываю файл 'f.close()', и я использую Windows 10. Обновит вопрос. –
Если вы запустите программу, когда нет «new_output.xml» - все еще не удается? –