How To Write To A Specific Line Of A File?
Let's say I have a text file Line 1 Line 2 Line 3 I read through it and decide to change Line 2 to Line Two. Can I do that elegantly in Python without simply rewriting the file wi
Solution 1:
A file is a sequence of bytes. If you want to change something in the middle that requires more or fewer bytes to express, the rest of the file needs to resize.
Because a file is a physical sequence of bytes on a storage medium, that means you need to rewrite the entire rest of the file. In other words, you need to move over everything following line 2.
In practice, that means rewriting the file, as that is much easier to achieve.
Solution 2:
You want the power of in-place editing, which the fileinput module offers:
inplace-edit.py:
import sys
import fileinput
for line in fileinput.input(sys.argv[1], inplace=1):
line = line.rstrip() # Remove the new lineif line == 'Line 2':
line = 'Line two'print line
data.txt:
Line 1
Line 2
Line 3To run it:
python inplace-edit.py data.txt
The resulting data.txt:
Line 1
Line two
Line 3
Post a Comment for "How To Write To A Specific Line Of A File?"