Przetwarzanie output'a

Przetwarzanie output'a
TE
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 6 lat
  • Postów:26
0

Cześć, mam następujący output: 1 1J5A RR0051GAGGAAACUC(((....)))A2351 2360 X-Ray DifractionRIBOSOME2002-03-063.51. Chce, by był przedstawiony w następującej formie 1 1J5A RR0051GAGGAAACUC (((....))) A 2351 2360 X-Ray Difraction RIBOSOME 2002-03-06 3.5 1 W jaki sposób mogę najłatwiej to przetworzyć w taką postać?

Spine
  • Rejestracja:około 22 lata
  • Ostatnio:około 2 godziny
  • Postów:6685
0
Kopiuj
import re

tekst = " 1 1J5A        RR0051GAGGAAACUC(((....)))A2351 2360 X-Ray DifractionRIBOSOME2002-03-063.51"
#cel:
# 1 1J5A RR0051GAGGAAACUC (((....))) A 2351 2360 X-Ray Difraction RIBOSOME 2002-03-06 3.5 1

result = re.findall(r"( \d)\s+?(.+?)\s+(.+?)(\(\(\(.+?\)\)\))(.)(.+?)\s(.+?)\s(.+?)\s([A-Z][a-z]+)([A-Z]+)(\d\d\d\d-\d\d-\d\d)(\d+?\.\d+?)(\d)", tekst)

print (" ".join(result[0]))

http://ideone.com/LaOb6R


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
TE
ok, dla tego przypadku działa, ale jeżeli już mam więcej linii jak np tutaj http://wklej.org/id/2507326/ to pojawia się problem z wyjściem poza zakres listy
Spine
dałeś konkretny przypadek, to napisałem wyrażenie dla konkretnego przypadku ;) Potem zerknę na link...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.