Запись только в одной строке

#python #file-handling

#питон #обработка файлов

Вопрос:

Мне нужно объединить некоторую строку из другого файла в выходной файл, но только в одной строке! Это мой настоящий код:

 eannuli=open('eannuli_spec_prova_ciao.reg','r',) fov_c7=open('23849_fov_c7_ciao.reg','r') fov7=fov_c7.read() psr=open('psrc-ciao_mod.reg','r') psrc=psr.read()  i = 1  for ean in eannuli:  if os.path.exists('region%s.reg' %i):  i  = 1  region=open('region%s.reg' %i, "w")  print(fov7,'*',file=region,sep='*',end='')  print(ean,file=region,sep='',end='')  print(psrc,file=region,end='')  region.close()  break   eannuli.close() fov_c7.close() psr.close()   

Я также попытался использовать функцию write (), но без успеха. Для каждой переменной он создает новую строку.

Ответ №1:

Судя по вашему сообщению, вы читаете строки из одного файла, а затем записываете их в другой файл. Он помещает новые строки в каждую строку, потому что строки из файла, который вы читаете, содержат новые символы в конце. Вы можете исправить это, удалив символ новой строки в конце строки. Что — то вроде этого:

 for ean in eannuli:  if os.path.exists('region%s.reg' %i):  i  = 1  region=open('region%s.reg' %i, "w")  region.write(fov7)  region.write(ean.rstrip())  region.write(psrc)  region.close()  break  

Ответ №2:

Просто откройте файл в режиме добавления.

 fn = 'whatever.txt' with open(fn, 'a') as f:  for _ in range(100):  f.write('something ')