Re: A switch somewhere, or bug? CORRECTION
Thomas Passin <[email protected]> Sat, 6 Dec 2025 19:54:58 -0500
| Newsgroups | gmane.comp.python.general |
|---|---|
| Message-ID | <[email protected]> |
On 12/6/2025 6:49 PM, Em wrote:
> For at least the last 10 years. I have been using double click on the
> filename (or by shortcut) to use the program. It tracks the Insulin
> injections for me and creates/updates several text files. I have been using
> IDLE for editing on WIN10 computers. No issues....
>
> When I copied the file to the new WIN11 computer and double-click on the
> filename, it fails without warning or explanation. In WIN11, I can open the
> file with IDLE and use F5 to run it successfully.
>
> I was told to try "Open with Python" and it fails on both the WIN10 and
> WIN11 computers. I do not see the option for this program to Run as
> Administrator on either computer. I have seen/used Run as Administrator
> elsewhere on the WIN10 computer.
>
> I created a .py program with the lines of code:
>
> pause = input("Start")
> Starter = open("HLY-LOG5.txt","w")
> pause = input("End")
>
> and can follow all six of the techniques to run as mentioned above. Three
> situations, the program runs, and three have the program fail. Exactly the
> same results as with my medical program.
>
> Has my short, three line, program worked on your system?
You should have sent this message to the group, not just me. Yes, your
program created the file but not when I double-clicked on the file name.
As I explained in my last post, that's because in Windows 11 when
double-clicking, the working directory is the system's Windows
directory, not the one your program is in. In Win 11, you don't have
access to it as an ordinary user. Anyway even if you did, you don't
want to write your file there.
There's a simple solution if you want to be able to launch by double
clicking the file. Actually, there are at least four ways to go.
1. Run your program using a batch file. in the batch file, cd to your
target directory before launching your program. The batch file needs to
be somewhere on your path, or alternatively you can put a shortcut to it
on your desktop.
If you don't know how to do any of those things, ask for help.
2. Make your Python program change directories to the target directory
before writing the file. I think someone already posted a code snippet
showing how to do that. If not, and you don't know how, ask for help.
3. Hard-code the full path to your target file. Then it won't matter
what working directory is in effect.
4.Create a shortcut for your .py file on the desktop. Then open the
Properties dialog for the shortcut. In the "Shortcut" tab you can put
the desired working directory. Now when you double click the shortcut,
it will open in the right directory.
> -----Original Message-----
> From: Thomas Passin <[email protected]>
> Sent: Saturday, December 6, 2025 4:17 PM
> To: [email protected]
> Subject: Re: A switch somewhere, or bug? CORRECTION
>
> On 12/6/2025 2:51 PM, Em wrote:
>>
>> The confusing part here is that no one has indicated whether or not
>> the statement fails in any of the six ways to run this program except me.
>>
>> Am I the only one that as the problem?
>
> No. I created the program with the suggested printout of the working
> directory. Here's what I ran:
>
> import os
> print("Start")
> print("working directory:", os.getcwd())
> input(" Starter file")
>
> try:
> Starter = open("HLY-LOG5.txt","w")
> except Exception as e:
> print(f"Error: {e}")
> input("End")
>
> It ran but failed to create the file. That's because of the working
> directory when the program was run by double-clicking its name. Here's the
> output.
>
> Start
> working directory: C:\WINDOWS\system32
> Starter file
> Error: [Errno 13] Permission denied: 'HLY-LOG5.txt'
> End
>
> An ordinary user doesn't have permission for the C:\WINDOWS\system32
> directory. Maybe on your Windows 10 system the working directory was the
> program's directory. But with the new file association system it's not. I
> think it should be, myself.
>
> When I ran the program by typing just its name in a terminal opened on the
> program's directory, it created the file without any errors.
>
> I'm running Python 3.12+, but the exact version won't matter because the
> initial working directory is set by Windows, not Python.
>
> If you really really want programs that reliably write to the program's
> directory, you can get it from sys.argv[0] and have Python change
> directories for you. Otherwise, start your program in some other way than by
> double-clicking.
>
>> -----Original Message-----
>> From: Peter J. Holzer <[email protected]>
>> Sent: Saturday, December 6, 2025 12:56 PM
>> To: [email protected]
>> Subject: Re: A switch somewhere, or bug? CORRECTION
>>
>> On 2025-12-04 18:03:34 -0500, Em wrote:
>> ^^^^^^^^^^
>> Weird. That was before most of the thread (and the message wasn't
>> stuck in a moderation queue), yet it seems everybody ignored this message.
> .
>> Probably because it isn't actually part of the thread, but ...
>>
>>> On my computer: Win11, Python 3.14.1
>>>
>>>
>>>
>>> Double-click and run on the file". You will see the first two lines
>>> execute.
>>>
>>> The screen will show "Start" and "Starter File".
>>
>> Good. So we know that the program is executed.
>>
>>> Hit <Enter> to resolve the
>>> pause statement and the program crashes when it tries to create the
>>> "HLY-LOG5" file. The last line, "End" is not printed. No file is created.
>>
>> So the next step is to find out why it isn't executed. First print the
>> working directory:
>>
>> import os
>> print("Start")
>> print("working directory:", os.getcwd())
>> input(" Starter file")
>>
>> then wrap the open in a try/except block:
>>
>> try:
>> Starter = open("HLY-LOG5.txt","w") except Exception as e:
>> print("Error: {e}")
>> input("End")
>>
>> This should now tell you in which directory the program is actually
>> trying to create the file and why it didn't work.
>>
>> hip
>>
>
> --
> https://mail.python.org/mailman3//lists/python-list.python.org
>