Supprimer des caractères avant et y compris _ en python 2.7
Le code suivant renvoie une belle lisible de sortie.
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()
C'est la sortie, maintenant je voudrais supprimer tous les caractères jusqu'à et y compris la _
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
Comment puis-je faire cela?
Vous devez vous connecter pour publier un commentaire.
Pour obtenir tout le texte sur une ligne après un caractère de soulignement, split, sur la première
_
personnage et de prendre le dernier élément de la suite:Cela fonctionnera également pour les lignes qui ne pas ont un caractère de soulignement sur la ligne.
Démo:
La traduction de ce à votre code:
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)) for line in lines: line.split('_', 1)[-1] tofile.write(lines) infile.close() tofile.close()
résultats que dans le dernier caractère du fichier = Sline.split
. Vous avez besoin de stocker ou d'écrire directement:for line in lines: tofile.write(line.split('_', 1)[-1])
par exemple.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)) for line in lines: tofile.write(line.split('_', 1)[-1]) infile.close() tofile.close()
résultats dans une sortie, y compris les caractères avant le _