Reputation: 23
How to remove integer values in lines of a file in python? This is my present output
നട തുറന്നപ്പോള് കൃഷ്ണന് പുഞ്ചിരിച്ചു കൊണ്ട് നില്ക്കുക ആയിരുന്നു 1.
എന്തോ പറയുന്ന പോലെ തോന്നി 2.
കള്ള കൃഷ്ണന് 3.
അവന് എന്നും ഇങ്ങനേ തന്നെ ആയിരുന്നു 4.
I need the output after removing integers as
നട തുറന്നപ്പോള് കൃഷ്ണന് പുഞ്ചിരിച്ചു കൊണ്ട് നില്ക്കുക ആയിരുന്നു .
എന്തോ പറയുന്ന പോലെ തോന്നി .
കള്ള കൃഷ്ണന് .
അവന് എന്നും ഇങ്ങനേ തന്നെ ആയിരുന്നു .
Upvotes: 2
Views: 103
Reputation: 87084
Another way using unicode.translate()
. Faster than filter
, slower than regex.
>>> s=u'''നട തുറന്നപ്പോള് കൃഷ്ണന് പുഞ്ചിരിച്ചു കൊണ്ട് നില്ക്കുക ആയിരുന്നു 1.
... എന്തോ പറയുന്ന പോലെ തോന്നി 2.
... കള്ള കൃഷ്ണന് 3.
... അവന് എന്നും ഇങ്ങനേ തന്നെ ആയിരുന്നു 4.'''
>>> print s.translate({ord(s):None for s in string.digits})
നട തുറന്നപ്പോള് കൃഷ്ണന് പുഞ്ചിരിച്ചു കൊണ്ട് നില്ക്കുക ആയിരുന്നു .
എന്തോ പറയുന്ന പോലെ തോന്നി .
കള്ള കൃഷ്ണന് .
അവന് എന്നും ഇങ്ങനേ തന്നെ ആയിരുന്നു .
Upvotes: 0
Reputation: 21446
Other pythonic solution,
>>> s = u'''നട തുറന്നപ്പോള് കൃഷ്ണന് പുഞ്ചിരിച്ചു കൊണ്ട് നില്ക്കുക ആയിരുന്നു 1.
എന്തോ പറയുന്ന പോലെ തോന്നി 2.
കള്ള കൃഷ്ണന് 3.
അവന് എന്നും ഇങ്ങനേ തന്നെ ആയിരുന്നു 4.'''
>>> print filter( lambda x: x not in '0123456789.', s )
നട തുറന്നപ്പോള് കൃഷ്ണന് പുഞ്ചിരിച്ചു കൊണ്ട് നില്ക്കുക ആയിരുന്നു
എന്തോ പറയുന്ന പോലെ തോന്നി
കള്ള കൃഷ്ണന്
അവന് എന്നും ഇങ്ങനേ തന്നെ ആയിരുന്നു
PS: regex is faster
Upvotes: 0
Reputation: 4467
Use regular expression to replace digit characters, e.g.
import re
re.sub(r'\d+', '', input_str)
Upvotes: 7