I have large string which I split by newlines. How can I remove all lines that are empty, (whitespace only)?
pseudo code:
for stuff in largestring:
remove stuff that is blank
I have large string which I split by newlines. How can I remove all lines that are empty, (whitespace only)?
pseudo code:
for stuff in largestring:
remove stuff that is blank
Using regex:
if re.match(r'^\s*$', line):
# line is empty (has only the following: \t\n\r and whitespace)
Using regex + filter()
:
filtered = filter(lambda x: not re.match(r'^\s*$', x), original)
As seen on codepad.
Try list comprehension and string.strip()
:
>>> mystr = "L1\nL2\n\nL3\nL4\n \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', ' ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
Edit: Wow, I guess omitting the obvious isn't okay.
lines = bigstring.split()
lines = [line for line in lines if line.strip()]