I want to remove the last comma in a text file in python. The file looks like this :
{"time":"2019-02-12T14:41:25.2424552+01:00","ip":"::1","browser":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36","user":"28969523B","profile":"SUMUM_D?99?2017?2","controller":"Alteraciones_Primitivas_dmz_","service":"GetAlteracion","delegacion":null,"municipio":null,"method":"GET","parameters":{"id_alteracion":"11_31_85531"},"response":null,"status":200},
{"time":"2019-02-12T14:41:25.5525828+01:00","ip":"::1","browser":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36","user":"28969523B","profile":"SUMUM_D?99?2017?2","controller":"Expedientes_dmz_","service":"GetObligatoriedadDocumental","delegacion":null,"municipio":null,"method":"GET","parameters":{"id_alteracion":"11_31_85531","tipo_alteracion":"ALT_1","id_expediente":""},"response":null,"status":400},
{"time":"2019-02-12T14:41:25.9169746+01:00","ip":"::1","browser":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36","user":"28969523B","profile":"SUMUM_D?99?2017?2","controller":"Alteraciones_Primitivas_dmz_","service":"Ubicar","delegacion":null,"municipio":null,"method":"GET","parameters":{"id_alteracion":"11_31_85531","epsg":"EPSG:4326"},"response":null,"status":200},
{"time":"2019-02-12T14:41:29.8222248+01:00","ip":"::1","browser":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36","user":"28969523B","profile":"SUMUM_D?99?2017?2","controller":"Alteraciones_Primitivas_dmz_","service":"GetAlteracion","delegacion":null,"municipio":null,"method":"GET","parameters":{"id_alteracion":"11_31_17819"},"response":null,"status":200},
{"time":"2019-02-12T14:41:29.9708861+01:00","ip":"::1","browser":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36","user":"28969523B","profile":"SUMUM_D?99?2017?2","controller":"Expedientes_dmz_","service":"GetObligatoriedadDocumental","delegacion":null,"municipio":null,"method":"GET","parameters":{"id_alteracion":"11_31_17819","tipo_alteracion":"ALT_1","id_expediente":""},"response":null,"status":400} ,
{"time":"2019-02-12T14:41:30.3077709+01:00","ip":"::1","browser":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36","user":"28969523B","profile":"SUMUM_D?99?2017?2","controller":"Alteraciones_Primitivas_dmz_","service":"Ubicar","delegacion":null,"municipio":null,"method":"GET","parameters":{"id_alteracion":"11_31_17819","epsg":"EPSG:4326"},"response":null,"status":200},
{"time":"2019-02-12T14:41:38.7145697+01:00","ip":"::1","browser":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36","user":"28969523B","profile":"SUMUM_D?99?2017?2","controller":"Documentos_dmz_","service":"obtenerDocumento","delegacion":null,"municipio":null,"method":"GET","parameters":{"id_alteracion":"11_31_17819","documento":"E000226847","control":11},"response":null,"status":200},
And I want to remove the comma in the last line. After looking a plenty of examples, I tried this code (and a lot of similar options):
with open('data.txt', 'w') as f:
f.seek(f.tell() - 1, os.SEEK_SET)
f.truncate()
But this doesn't work. Any help?
EDIT
There are no spaces between the comma and '}'
. The program we have in my office (I don't have access to it) gives an error if the file ends with a comma. What I need is to remove only the last comma in the last line of the file, not in every line, and return the file in this way:
{"time":"2019-02-12T14:41:25.2424552+01:00","ip":"::1","browser":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36","user":"28969523B","profile":"SUMUM_D?99?2017?2","controller":"Alteraciones_Primitivas_dmz_","service":"GetAlteracion","delegacion":null,"municipio":null,"method":"GET","parameters":{"id_alteracion":"11_31_85531"},"response":null,"status":200},
{"time":"2019-02-12T14:41:25.5525828+01:00","ip":"::1","browser":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36","user":"28969523B","profile":"SUMUM_D?99?2017?2","controller":"Expedientes_dmz_","service":"GetObligatoriedadDocumental","delegacion":null,"municipio":null,"method":"GET","parameters":{"id_alteracion":"11_31_85531","tipo_alteracion":"ALT_1","id_expediente":""},"response":null,"status":400},
{"time":"2019-02-12T14:41:25.9169746+01:00","ip":"::1","browser":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36","user":"28969523B","profile":"SUMUM_D?99?2017?2","controller":"Alteraciones_Primitivas_dmz_","service":"Ubicar","delegacion":null,"municipio":null,"method":"GET","parameters":{"id_alteracion":"11_31_85531","epsg":"EPSG:4326"},"response":null,"status":200},
{"time":"2019-02-12T14:41:29.8222248+01:00","ip":"::1","browser":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36","user":"28969523B","profile":"SUMUM_D?99?2017?2","controller":"Alteraciones_Primitivas_dmz_","service":"GetAlteracion","delegacion":null,"municipio":null,"method":"GET","parameters":{"id_alteracion":"11_31_17819"},"response":null,"status":200},
{"time":"2019-02-12T14:41:29.9708861+01:00","ip":"::1","browser":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36","user":"28969523B","profile":"SUMUM_D?99?2017?2","controller":"Expedientes_dmz_","service":"GetObligatoriedadDocumental","delegacion":null,"municipio":null,"method":"GET","parameters":{"id_alteracion":"11_31_17819","tipo_alteracion":"ALT_1","id_expediente":""},"response":null,"status":400},
{"time":"2019-02-12T14:41:30.3077709+01:00","ip":"::1","browser":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36","user":"28969523B","profile":"SUMUM_D?99?2017?2","controller":"Alteraciones_Primitivas_dmz_","service":"Ubicar","delegacion":null,"municipio":null,"method":"GET","parameters":{"id_alteracion":"11_31_17819","epsg":"EPSG:4326"},"response":null,"status":200},
{"time":"2019-02-12T14:41:38.7145697+01:00","ip":"::1","browser":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36","user":"28969523B","profile":"SUMUM_D?99?2017?2","controller":"Documentos_dmz_","service":"obtenerDocumento","delegacion":null,"municipio":null,"method":"GET","parameters":{"id_alteracion":"11_31_17819","documento":"E000226847","control":11},"response":null,"status":200}
EDIT 2 Finally, @holdenweb solution work for me! :
with open('data.txt', 'ab'):
f.seek(-1, 2)
f.truncate()