too textwrap multiple long delimiters python string python-2.7 split word-wrap

textwrap - Elimina los caracteres antes e incluye_en python 2.7



split string python (1)

Para obtener todo el texto en una línea después de un carácter de subrayado, divídelo en el primer carácter _ y toma el último elemento del resultado:

line.split(''_'', 1)[-1]

Esto también funcionará para líneas que no tengan un carácter de subrayado en la línea.

Manifestación:

>>> ''Grp25_QTY47 5''.split(''_'', 1)[-1] ''QTY47 5'' >>> ''No underscore''.split(''_'', 1)[-1] ''No underscore''

Traduciendo esto a tu código:

import textwrap ta_to = ta_from.copyta(status=endstatus) with botslib.opendata(ta_from.filename,''r'') as infile: with botslib.opendata(str(ta_to.idta),''wb'') as tofile: for line in textwrap.wrap(next(infile), 640): line = line.split(''_'', 1)[-1] tofile.write(line + ''/r/n'')

El siguiente código vuelve a una buena salida legible.

def add_line_remove_special(ta_from,endstatus,*args,**kwargs): try: ta_to = ta_from.copyta(status=endstatus) infile = botslib.opendata(ta_from.filename,''r'') tofile = botslib.opendata(str(ta_to.idta),''wb'') start = infile.readline() import textwrap lines= "/r/n".join(textwrap.wrap(start, 640)) tofile.write(lines) infile.close() tofile.close()

Este es el resultado, ahora me gustaría eliminar todos los personajes hasta e incluyendo el _

Ichg_UNBUNOA3 14 2090100000015 14 1304221445000001 MSG_BGM380 610809 9 NA MSG_DTM13720130422 102 Grp1_RFFON test EDI Grp2_NADBY 2090100000015 9 Grp2_NADIV 2090100000015 9 Grp2_NADDP 2090100000015 9 Grp7_CUX2 EUR4 Grp8_PAT22 5 3 D 30 Grp25_LIN1 02090100000022 EN Grp25_QTY47 5 Grp25_QTY12 5 Grp26_MOA203 15.00 Grp28_PRIINV 3000.00 1000PCE Grp33_TAX7 VAT 21.00 S Grp25_LIN2 02090100000039 EN Grp25_QTY47 10 Grp25_QTY12 10 Grp26_MOA203 350.00 Grp28_PRIINV 35000.00 1000PCE Grp33_TAX7 VAT 21.00 S

¿Cómo puedo hacer esto?