Reading text file with wierd file extension?

Lionel lionel.keene at gmail.com
Mon Feb 2 15:33:36 EST 2009


On Feb 2, 12:10 pm, Mike Driscoll <kyoso... at gmail.com> wrote:
> On Feb 2, 1:20 pm, Lionel <lionel.ke... at gmail.com> wrote:
>
>
>
>
>
> > On Feb 2, 10:41 am, Mike Driscoll <kyoso... at gmail.com> wrote:
>
> > > On Feb 2, 12:36 pm, Lionel <lionel.ke... at gmail.com> wrote:
>
> > > > Hi Folks, Python newbie here.
>
> > > > I'm trying to open (for reading) a text file with the following
> > > > filenaming convension:
>
> > > > "MyTextFile.slc.rsc"
>
> > > > My code is as follows:
>
> > > > Filepath = "C:\\MyTextFile.slc.rsc"
> > > > FileH = open(Filepath)
>
> > > > The above throws an IOError exception. On a hunch I changed the
> > > > filename (only the filename) and tried again:
>
> > > > Filepath = "C:\\MyTextFile.txt"
> > > > FileH = open(Filepath)
>
> > > > The above works well. I am able to open the file and read it's
> > > > contents. I assume to read a file in text file "mode" the parameter is
> > > > scanned for a ".txt" extension, otherwise the Python runtime doesn't
> > > > know what version of "open(...)" to invoke. How do I pass the original
> > > > filename (MyTextFile.slc.rsc) and get Python to open it as a text
> > > > file? Thanks in advance everyone!
>
> > > The extension shouldn't matter. I tried creating a file with the same
> > > extension as yours and Python 2.5.2 opened it and read it no problem.
> > > I tried it in IDLE and with Wing on Windows XP. What are you using?
> > > What's the complete traceback?
>
> > > Mike- Hide quoted text -
>
> > > - Show quoted text -
>
> > Hi Mike,
>
> > maybe it's not a "true" text file? Opening it in Microsoft Notepad
> > gives an unformatted view of the file (text with no line wrapping,
> > just the end-of-line square box character followed by more text, end-
> > of-line character, etc). Wordpad opens it properly i.e. respects the
> > end-of-line wrapping. I'm unsure of how these files are being
> > generated, I was just given them and told they wanted to be able to
> > read them.
>
> > How do I collect the traceback to post it?
>
> The traceback should look something like this fake one:
>
> Traceback (most recent call last):
>   File "<pyshell#3>", line 1, in <module>
>     raise IOError
> IOError
>
> Just copy and paste it in your next message. The other guys are
> probably right in that it is a line ending issue, but as they and I
> have said, Python shouldn't care (and doesn't on my machine).
>
> Mike- Hide quoted text -
>
> - Show quoted text -

Okay, I think I see what's going on. My class takes a single parameter
when it is instantiated...the file path of the data file the user
wants to open. This is of the form "someFile.slc". In the same
directory of "someFile.slc" is a resource file that (like a file
header) contains a host of parameters associated with the data file.
The resource file is of the form "someFile.slc.rsc". So, when the user
creates an instance of my class which, it invokes the __init__ method
where I add the ".rsc" extension to the original filename/path
parameter that was passed to the class "constructor". For example:

Note: try-catch blocks ommitted.

class MyUtilityClass:
    def __init__(self, DataFilepath):
        Resourcepath  = DataFilepath + ".rsc"
        DataFileH     = open(DataFilepath)
        ResourceFileH = open(Resourcepath)


Invoking this from the Python shell explicitly is no problem i.e.
"TestH = open("C:\\TestResourceFile.slc.rsc") works. BUT...something
is lost when I append the ".rsc" extension to the DataFilePath
parameter as above. When the __init__ method is invoked, Python will
open the data file but generates the exception with the "open
(Resourcepath)" instruction. I think it is somehow related to the
backslashes but I'm not entirely sure of this. Any ideas?

Thanks for the help folks.



More information about the Python-list mailing list