[Tutor] Verifying My Troublesome Linkage Claim between Python and Win7
Wayne Watson
sierra_mtnview at sbcglobal.net
Sat Feb 27 19:30:49 CET 2010
Ok, I'm back after a three day trip. You are correct about the use of
pronouns and a few misplaced words. I should have reread what I wrote. I
had described this in better detail elsewhere, and followed that
description with the request here probably thinking back to it. I think
I was getting a bit weary of trying to find an answer. Try t;his.
Folder1
track1.py
data1.txt
data2.txt
data3.txt
Folder2
track1.py
dset1.txt
dset2.txt
...
dset8.txt
data and dset files have the same record formats. track1.py was copied
into Folder2 with ctrl-c + ctrl-v. When I run track1.py from folder1,
it clearly has examined the data.txt files. If I run the copy of
track1.py in folder2, it clearly operates on folder1 (one) data.txt
files. This should not be.
If I look at the properties of track1.py in folder2 (two), it is
pointing back to the program in folder1 (one).
I do not believe I've experienced this sort of linkage in any WinOS
before. I believed I confirmed that the same behavior occurs using cmd
prompt.
I'll now head for Alan's reply.
On 2/23/2010 5:35 PM, Dave Angel wrote:
>
> Wayne Watson wrote:
>> A few days ago I posted a message titled ""Two" Card Monty. The
>> problem I mentioned looks legitimate, and remains puzzling. I've
>> probed this in a newsgroup, and no one has an explanation that fits.
>>
>> My claim is that if one creates a program in a folder that reads a
>> file in the folder it ... then copies it to another folder, it will
>> read the data file in the first folder, and not a changed file in
>> the new folder. I'd appreciate it if some w7 users could try the
>> program below, and let me know what they find. I'm using IDLE in
>> Win7 with Py 2.5.
>>
>> My experience is that if one checks the properties of the copied
>> file, it will point to the original py file and execute it and not
>> the copy. If win7 is the culprit, I would think this is a somewhat
>> serious problem. It may be the sample program is not representative
>> of the larger program that has me stuck. If necessary I can provide
>> it. It uses common modules. (Could this be something like the
>> namespace usage of variables that share a common value?)
>>
>> # Test program. Examine strange link in Python under Win7
>> # when copying py file to another folder.
>> # Call the program vefifywin7.py
>> # To verify my situation use IDLE, save and run this program there.
>> # Put this program into a folder along with a data file
>> # called verify.txt. Create a single text line with a few characters
>> in it
>> # Run this program and note the output
>> # Copy the program and txt file to another folder
>> # Change the contents of the txt file
>> # Run it again, and see if the output is the same as in the other folder
>> track_file = open("verify.txt")
>> aline = track_file.readline();
>> print aline
>> track_file.close()
>>
> I find your English is very confusing. Instead of using so many
> pronouns with confusing antecedents, try being explicit.
>
> >My claim is that if one creates a program in a folder that reads a
> file in the folder
>
> Why not say that you created a program and a data file in the same
> folder, and had the program read the data file?
>
> >...in the folder it and then copies it to another folder
>
> That first 'it' makes no sense, and the second 'it' probably is meant
> to be "them". And who is it that does this copying? And using what
> method?
>
> > ... it will read the data file in the first folder
>
> Who will read the data file? The first program, the second, or maybe
> the operator?
>
> About now, I have to give up. I'm guessing that the last four lines
> of your message were intended to be the entire program, and that that
> same program is stored in two different folders, along with data files
> having the same name but different first lines. When you run one of
> these programs it prints the wrong version of the line.
>
> You have lots of variables here, Python version, program contents,
> Idle, Windows version. Windows 7 doesn't do any mysterious "linking,"
> so I'd stop making that your working hypothesis. Your problem is most
> likely the value of current directory ( os.getcwd() ). And that's set
> according to at least three different rules, depending on what program
> launches Python. If you insist on using Idle to launch it, then
> you'll have to convince someone who uses Idle to tell you its
> quirks. Most likely it has a separate menu for the starting
> directory than for the script name & location. But if you're willing
> to use the command line, then I could probably help, once you get a
> clear statement of the problem. By default, CMD.EXE uses the current
> directory as part of its prompt, and that's the current directory
> Python will start in.
>
> But the first things to do are probably to print out the value of
> os.getcwd(), and to add a slightly different print in each version of
> the program so you know which one is running.
>
> Incidentally, I'd avoid ever opening a data file in "the current
> directory." If I felt it important to use the current directory as an
> implied parameter to the program, I'd save it in a string, and build
> the full path to the desired file using os.path.join() or equivalent.
>
> DaveA
>
>
--
"There is nothing so annoying as to have two people
talking when you're busy interrupting." -- Mark Twain
More information about the Tutor
mailing list