user3251661
user3251661

Reputation: 23

Remove integer values from line in a file in python

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

Answers (3)

mhawke
mhawke

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

Adem Öztaş
Adem Öztaş

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

Qiang Jin
Qiang Jin

Reputation: 4467

Use regular expression to replace digit characters, e.g.

import re
re.sub(r'\d+', '', input_str)

Upvotes: 7

Related Questions