On 13/03/17 20:37, padawanweb...@gmail.com wrote:
On Monday, March 13, 2017 at 11:10:36 AM UTC-7, Rhodri James wrote:
On 13/03/17 17:40, padawanweb...@gmail.com wrote:
Hello, I'm having a problem with a try except inside a while loop. The problem 
I see occuring has to do with an excel file the script tries to write to while 
the excel file is open. The exception captures and gives an error:

OError: [Errno 13] Permission 
denied:'C:\\Users\\Administrator\\Desktop\\Version5.0\\DeviceTrackerReport45.xlsx'

This is expected and is not the problem. However, the issue occurs when I close 
the excel file. As an example, if I run the script and the excel file is open 
thru 3 iterations, meaning that the script can't write to the excel file until 
the excel file is closed, then after the excel file is closed the script prints 
to the excel file 3 times. I don't need it to write to the excel file 3 times. 
I only need it to write just once. If the excel file is closed before I run the 
script than it works like its suppose too.
I hope I made my case clear. I look forward to some feedback. Any would be 
greatly appreciated!

When you say "...the excel file is open thru 3 iterations", what do you
mean?  Three iterations of what?  You haven't shown us a loop, so it's
not obvious.

How do you know it prints (writes?) to the excel file three times?
Again, there's nothing in the code snippet that would tell you.

here is part of the code:

        connectionResults = None
        returnResults = InternetQualityTest.connectionTest(connectionResults)
        if returnResults == True:
            try:
                execfile('assetMapping.py')
                time.sleep(4)
                sys.exit()
            except Exception as e:
                print "error",e
                time.sleep(20)

This looks plausible, though honestly the execfile makes me feel icky
for unrelated reasons.  I repeat, though; this isn't a loop, and my
crystal ball isn't up to telling me how it gets invoked.

FYI: The assetMapping.py runs another module from inside, and it's this module 
running from assetMapping that writes to the excel file.



--
Rhodri James *-* Kynesim Ltd

I apologize if I short-changed you with the code. It's a bigger piece of code 
and I thought maybe with my explanation and the piece I showed it would be 
enough. I was wrong. Here is the rest. I apologize in advance if there are any 
more confusions.

I do appreciate your help! Thanks in advance :-)


THIS IS: Main.py

import InternetQualityTest
import assetMapping
import time
import sys



if __name__ == '__main__':

    while True:

        connectionResults = None
        returnResults = InternetQualityTest.connectionTest(connectionResults)
        if returnResults == True:
            try:
                execfile('assetMapping.py')
                time.sleep(4)
                sys.exit()
            except Exception as e:
                print "error",e
                time.sleep(20)

[Large amount of code with no suspicious-looking loops snipped]

Thanks for the extra code. It's hard to get the balance right between giving people enough information to help and giving us so much information we can't see the wood for the trees.

Anyway, I'll go back to my questions. What output do you have that convinces you that assetMapping.py is invoked three (or however many) times while the excel file is open? What output do you have that convinces you that it then writes three (or however many) times? As far as I can tell, the loop above can only repeat the call to execfile() if it catches an exception: what were those exceptions?

--
Rhodri James *-* Kynesim Ltd
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to