Проблема с созданием текстового файла, когда новые строки создаются, когда они не действительно EOL

Я импортирую некоторые текстовые данные из набора файлов, которые я создал в python (преобразование метаданных / xml записей в текст) в excel. В основном он отлично работает, за исключением того, что в точках, где текст просто находится в абзаце, вставлены новые строки. Это проблема в процессе создания файла.

Возможно ли автоматическое очистку данных для сохранения данных в одной строке до тех пор, пока она не встретит escape / новый символ?

Поскольку этот сайт не разрешает вложения, я привел примеры здесь.

  1. anz * _log.txt – Исходный текстовый файл, в котором я использую «^» в качестве разделителя. Я могу заставить его добавить другого символа в конце каждой известной строки, если excel может использовать это, чтобы создавать новые строки только тогда, когда это существует.
  2. anz * _xml.xls Excel Import – рабочий лист (* журнал) необработанные данные импорта) и очищается, когда я использовал формулы для правильного получения значений.
  3. rowChar_anz * log.txt – исходный текстовый файл с ':;:' в начале каждой строки, чтобы показать, что это должна быть новая строка (такая же, как 1, но с дополнительным разделителем для строки)

Это всего лишь тестовый набор данных, и мне нужно запустить его на 1000 файлов. См. Вопросы в строках 9,13, 54 и т. Д.

Могу ли я использовать python (или, если необходимо, cygwing / SED), чтобы

  1. Ищите строку «начало строки» – ':;:' и "конец строки" string ';:;'
  2. Если оба они не существуют в одной строке, добавьте строку в предыдущую строку

Альтернативно (и в идеале) Можно ли это сделать, пока файл создается с помощью следующего кода? возможно, используя re.compile (как в Query CSV и написать исходный CSV и результаты для одиночного CSV Python )?

#------------------------------------------------------------------------------- # Name: Convert xml data to csv with anzlic tagged data kept seperate # Purpose: Also has an excel template to convert the data into standard columns # # Author: georgec@atgis.com.au # # Created: 05/03/2013 # Copyright: (c) ATGIS. georgec 2013 # Licence: Creative Commons #------------------------------------------------------------------------------- import os, xml, shutil, datetime from xml.etree import ElementTree as et SourceDIR=r'L:\Vector_Data' rootDir=os.getcwd() log_name='vector' x=0 def locatexml(SourceDIR,x, rootDir): xmllist=[] for root, dirs, files in os.walk(SourceDIR, topdown=False): for fl in files: currentFile=os.path.join(root, fl) ext=fl[fl.rfind('.')+1:] if ext=='xml': xmllist.append(currentFile) print currentFile x+=1 try: processxml(currentFile,x, rootDir) except: print "Issue with file: "+ currentFile log=open(rootDir+'\\'+log_name+'issue_xml_log.txt','a') log.write(str(x)+'^'+currentFile+'\n') log.close print "finished" return xmllist, x, currentFile def processxml(currentFile,x, rootDir): from lxml import etree seperator='^' with open(currentFile) as f: tree = etree.parse(f) xmltaglist=[] for tagn in tree.iter(tag=None): #print tagn.tag xmltaglist.append(tagn.tag) if 'anzmeta' in str(tree.getroot()): log=open(rootDir+'\\'+log_name+'anzmeta_xml_log.txt','a') log.write(':;:'+seperator+str(x)+seperator+currentFile+seperator) for xmltag in xmltaglist: for element in tree.iter(xmltag): #print element[x] for child in element.getchildren(): print "{0.tag}: {0.text}".format(child) log.write("{0.tag}".format(child)+"::"+"{0.text}".format(child)+seperator) log.write('\n') log.close else: print currentFile+" not an anzlic metadata file...logging seperately" log=open(rootDir+'\\'+log_name+'non_anzmeta_xml_log.txt','a') log.write(':;:'+seperator+str(x)+seperator+currentFile+seperator) for xmltag in xmltaglist: for element in tree.iter(xmltag): #print element[x] for child in element.getchildren(): print "{0.tag}: {0.text}".format(child) log.write("{0.tag}".format(child)+"::"+"{0.text}".format(child)+seperator) log.write('\n') log.close locatexml(SourceDIR,x, rootDir) 

One Solution collect form web for “Проблема с созданием текстового файла, когда новые строки создаются, когда они не действительно EOL”

Нашел ответ …. просто добавил .replace ('\ n', '') для команды, которая написала каждую запись. Должен был подумать об этом несколько часов назад !!!

Python - лучший язык программирования в мире.