David wrote:
line = infile.readline()    # Invokes readline() method on file
while line:
    outfile.write(line),    # trailing ',' omits newline character
    line = infile.readline()

The 'while' loop can be replaced by a 'for' loop, like

for line in infile:
  outfile.write(line)


infile.close()
outfile.close()

</code>

As I said, before writing to file "pyout" I would like to append the string " -d" to each line. But how, where? I can't append to strings (which the lines gained with infile.readline() seem be), and my trial and error approach has brought me nothing but a headache.

readline() literally reads a line, including the terminating \n at the end.

(the end-of-file indication uses the empty string. By returning the terminating \n as well, an empty line becomes a "\n" string, so you can distinguish between both cases).



The simplest solution would be to construct a new line from the old one directly below the 'while', for example

line2 = line[:-1] + " -d\n"

followed by writing line2 to disk.


The question that arises however is, what should be done with a line like

"bla bla                 \n"

Do you want

"bla bla                 -d\n"

or do you want

"bla bla -d\n"

here?

If the latter, you may want to use str.rstrip() that deletes all white-space from the end of the line, like

line2 = line.rstrip() + " -d\n"


Sincerely,
Albert

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to