I have a list:
Cat Dog Monkey Pig
I have a script:
import sys input_file = open('list.txt', 'r') for line in input_file: sys.stdout.write('"' + line + '",')
The output is:
"Cat ","Dog ","Monkey ","Pig",
I'd like:
"Cat","Dog","Monkey","Pig",
I can't get rid of the carriage return that occurs from processing the lines in the list. Bonus point for getting rid of the , at the end. Not sure how to just find and delete the last instance.
In the Find box hold down the Alt key and type 0 1 0 for the line feed and Alt 0 1 3 for the carriage return. They can now be replaced with whatever you want.
str.rstrip or simply str.strip is the right tool to split carriage return (newline) from the data read from the file. Note str.strip will strip of whitespaces from either end. If you are only interested in stripping of newline, just use strip('\n')
Change the line
sys.stdout.write('"' + line + '",')
to
sys.stdout.write('"' + line.strip() + '",')
Note in your case, a more simplistic solution would had been
>>> from itertools import imap >>> with open("list.txt") as fin: print ','.join(imap(str.strip, fin)) Cat,Dog,Monkey,Pig
or Just using List COmprehension
>>> with open("test.txt") as fin: print ','.join(e.strip('\n') for e in fin) Cat,Dog,Monkey,Pig
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