В настоящее время у меня есть следующий код:
# Open a place holding output file
with open('out.txt', 'w') as f:
# Run BOLSIG-
r = Popen("%s %s" % (bolsig, infile), stdout=f, cwd=outputdir)
# Wait for BOLSIG- to complete
Popen.wait(r)
# Remove the created output file as it is not used and BOLSIG- creates it's own file
remove('out.txt')
Он принимает файл .exe (bolsig) , запускает свою программу и вводит в запущенную программу имя файла (infile) , который программа затем открывает и выполняет соответственно, выводя свой собственный файл.Этот скрипт часто запускается с 1000 входными файлами.
Единственный способ заставить Попена разрешить bolsig сохранить свой выходной файл - создать «удерживающий» файл out.txt и удалить его позже.Часто это работает нормально, но иногда программа запускает вывод файлов 80/90/100, а затем неожиданно запускает строку,
with open('out.txt', 'w') as f:
выдаст следующую ошибку:
Traceback (most recent call last):
File "C:/Users/minec/Desktop/College/4th_Year/Final Year Project/Program/Master-Program.py", line 1129, in <module>
main()
File "C:/Users/minec/Desktop/College/4th_Year/Final Year Project/Program/Master-Program.py", line 45, in main
outputdir = bolsig_minus(runfilelist)
File "C:/Users/minec/Desktop/College/4th_Year/Final Year Project/Program/Master-Program.py", line 496, in bolsig_minus
with open('out.txt', 'w') as f:
PermissionError: [Errno 13] Permission denied: 'out.txt'
Кто-нибудь знаетпочему выкидывает эту ошибку только изредка?Если да, то как мне это исправить или изменить код, чтобы он вообще не использовал файл out.txt , но все же позволял бы Popen сохранять его файл?