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?