On 09/08/2020 08:51, Steve wrote:

I have a file containing specifications. My .py program can read and
manipulate the data but I cannot seem to get it to update the original file
properly.

The code is simple and works except that the original line remains in the
file after the new updated one has been added.
...
That second line shown was the original line for MSN. The replacement line
should have replaced the original line not just get added to the file.  It
should have been replaced. What is in line 2, should have "1 MSN" at the
beginning but that somehow disappeared.

So close, so simple...
How do I fix this?


To be a logomach, let's talk about "update":-
May I advise that a 'good practice' would be to create a new file, and thus be able to (also) maintain the old version as a 'backup'.
(also: advantage when debugging/testing logic!)

The pattern is to read the 'old' file, line-by-line. If there is a key-match, ignore the read record, writing the new data in its stead. If there is not a match, copy the input-data into an output record.

The major addition will be the need to rename the 'old file', ensuring logic to handle any "clash" (based upon whatever security requirements/numbers of generations - which it would appear don't currently exist).

The above assumes that the program will either only ever update a single record per execution-run; or that the logic collects a list of changes to the file which will be saved to the file, as above.


Further, databases have been designed for this sort of partial update scenario. If/when updates become too frequent, or the file becomes extensive, recommend you look at using an RDBMS instead of using this 'flat-file' approach...
--
Regards =dn
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to