Deleting carriage returns caused by line reading

python, python-2.7

Solution

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

Problem

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.

Original source