Newby Question for reading a file

steven.oldner steven.oldner at gmail.com
Thu Feb 19 20:07:21 CET 2009


On Feb 19, 12:40 pm, Mike Driscoll <kyoso... at gmail.com> wrote:
> On Feb 19, 12:32 pm, "steven.oldner" <steven.old... at gmail.com> wrote:
>
> > Simple question but I haven't found an answer.  I program in ABAP, and
> > in ABAP you define the data structure of the file and move the file
> > line into the structure, and then do something to the fields.  That's
> > my mental reference.
>
> > How do I separate or address each field in the file line with PYTHON?
> > What's the correct way of thinking?
>
> > Thanks!
>
> I don't really follow what you mean since I've never used ABAP, but
> here's how I typically read a file in Python:
>
> f = open("someFile.txt")
> for line in f:
>     # do something with the line
>     print line
> f.close()
>
> Of course, you can read just portions of the file too, using something
> like this:
>
> f.read(64)
>
> Which will read 64 bytes. For more info, check the following out:
>
> http://www.diveintopython.org/file_handling/file_objects.html
>
>  - Mike

Hi Mike,

ABAP is loosely based on COBOL.

Here is what I was trying to do, but ended up just coding in ABAP.

Read a 4 column text file of about 1,000 lines and compare the 2
middle field of each line.  If there is a difference, output the line.

The line's definition in ABAP is PERNR(8) type c, ENDDA(10) type c,
BEGDA(10) type c, and LGART(4) type c.
In ABAP the code is:
LOOP AT in_file.
  IF in_file-endda <> in_file-begda.
    WRITE:\ in_file. " that's same as python's print
  ENDIF.
ENDLOOP.

I can read the file, but didn't know how to look st the fields in the
line.  From what you wrote, I need to read each segment/field of the
line?

Thanks,

Steve



More information about the Python-list mailing list