I'm trying to read a text from a text file, read lines, delete lines that contain specific string (in this case 'bad' and 'naughty'). The code I wrote goes like this:
infile = file('./oldfile.txt') newopen = open('./newfile.txt', 'w') for line in infile : if 'bad' in line: line = line.replace('.' , '') if 'naughty' in line: line = line.replace('.', '') else: newopen.write(line) newopen.close()
I wrote like this but it doesn't work out.
One thing important is, if the content of the text was like this:
good baby bad boy good boy normal boy
I don't want the output to have empty lines. so not like:
good baby good boy normal boy
but like this:
good baby good boy normal boy
What should I edit from my code on the above?
You can make your code simpler and more readable like this
bad_words = ['bad', 'naughty'] with open('oldfile.txt') as oldfile, open('newfile.txt', 'w') as newfile: for line in oldfile: if not any(bad_word in line for bad_word in bad_words): newfile.write(line)
using a Context Manager and any.
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