Проблема с созданием текстового файла, когда новые строки создаются, когда они не действительно 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) 

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