The following code returns into a nice readable output.
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()
This is the output, now I would like to remove all the characters until and including the _
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
How can I do this?
To remove everything before the first occurrence of the character '-' in a string, pass the character '-' as separator and 1 as the max split value. The split('-', 1) function will split the string into 2 parts, Part 1 should contain all characters before the first occurrence of character '-'.
lstrip() #strips everything before and including the character or set of characters you say. If left blank, deletes whitespace.. rstrip() #strips everything out from the end up to and including the character or set of characters you give. If left blank, deletes whitespace at the end.
To get all text on a line after a underscore character, split on the first _
character and take the last element of the result:
line.split('_', 1)[-1]
This will also work for lines that do not have an underscore character on the line.
Demo:
>>> 'Grp25_QTY47 5'.split('_', 1)[-1] 'QTY47 5' >>> 'No underscore'.split('_', 1)[-1] 'No underscore'
Translating this to your code:
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')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With