Duncan Booth wrote:
Ben <[EMAIL PROTECTED]> wrote:

Since strings are
immutable I can't assign different values to a specific slice of the
string. How can I accomplish this?

You probably don't want to use readlines. It is almost always cleaner just to iterate over the file itself.

You can't change an existing string, but creating a new string isn't exactly rocket science.

lines = []
for line in F:
    modified = line[:16] + "CHANGED" + line[23:]
    # or maybe
    modified = line.replace("1999999", "CHANGED")
    lines.append(modified)
FileOut.writelines(lines)

If you want your program to scale to indefinitely large files, and you edit each line independently, without using date from other lines, read a line *and* write the new line immediately

for line in F:
  FileOut.write(<modified>)

Where <modified> is one of the suggested expressions, or a temporary variable calculated on multiple lines.

To edit a line 'in-place', one can use the array module for mutable array of bytes (or the 3.0 bytearray), but I would only both with extensive editing.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to