2016-11-15 5 views
2

У меня есть три коротких текстовых файла JSON. Я хочу объединить их с Python, и, насколько он работает, и создает выходной файл со всем в нужном месте, на последней строке у меня есть запятая, и я хотел бы заменить ее на }. Я придумал такой код:Заменить последний символ в текстовом файле (python)

def join_json_file (file_name_list,output_file_name): 
    with open(output_file_name,"w") as file_out: 
     file_out.write('{') 
     for filename in file_name_list: 
      with open(filename) as infile: 
       file_out.write(infile.read()[1:-1] + ",") 
    with open(output_file_name,"r") as file_out: 
     lines = file_out.readlines() 
     print lines[-1] 
     lines[-1] = lines[-1].replace(",","") 

но он не заменяет последнюю строку. Может ли кто-нибудь мне помочь? Я новичок в Python, и я не могу найти решение самостоятельно.

ответ

0

Вы пишете все файлы, а затем загрузите их обратно, чтобы изменить последнюю строку. Это изменение будет происходить только в памяти, а не в самом файле. Лучшим подходом было бы избежать написания дополнительных , в первую очередь. Например:

def join_json_file (file_name_list, output_file_name): 
    with open(output_file_name, "w") as file_out: 
     file_out.write('{') 

     for filename in file_name_list[:-1]: 
      with open(filename) as infile: 
       file_out.write(infile.read()[1:-1] + ",") 

     with open(file_name_list[-1]) as infile: 
      file_out.write(infile.read()[1:-1]) 

Это первый пишет все, кроме последнего файла с дополнительной запятой, а затем записывает последний файл отдельно. Вы также можете проверить случай одного файла.

+0

работ perferctly, спасибо !! – totoczko

Смежные вопросы