mac text files & for line

Lie Ryan lie.1296 at
Tue Jun 16 16:27:06 EDT 2009

Humberto wrote:
> Greetings.
> This is probably a v. basic question, but my apologies as I'm
> relatively new w/ this.
> But I am attempting to use <i>for line</i> to iterate through a text
> file, but I am working on a Mac and am getting a single block of text.
> I assume this is because of the Mac {CR} usage vs. line feed.
> Is there a programmatic way to use for line to interpret the carriage
> return character as a new line? Otherwise, what are the easiest ways
> to be able to force a replacement of the {CR} character w/ the line
> feed? I've attempted the method using <i>tr</i>, but receive an
> illegal byte sequence error when running the tr '\r' '\n' < file1.txt
>> file2.txt command on my Mac.
> Any help would be greatly appreciated and thanks!

I guess this is how you write your code:
f = open('myfile.txt', 'r').read()
for line in f:
    print line
# stream of characters...

if that's the case, change the code into:
f = open('myfile.txt', 'r')
for line in f:
    print line

If you .read() the file yourself, you'll get a single string of the
whole file content; '\n' (of whatever real type) inside a string is not
used as delimiter for a for-loop.

More information about the Python-list mailing list