Pulling my hair out here... have been playing around with this for the last hour but I cannot get it to do what I want, ie. remove the newline sequence.
def add_quotes( fpath ):
ifile = open( fpath, 'r' )
ofile = open( 'ofile.txt', 'w' )
for line in ifile:
if line == '\n':
ofile.write( "\n\n" )
elif len( line ) > 1:
line.rstrip('\n')
convertedline = "\"" + line + "\", "
ofile.write( convertedline )
ifile.close()
ofile.close()
rstrip('\n') . This will strip all newlines from the end of the string, not just one.
The rstrip() method returns a copy of a string with the trailing characters removed.
Using strip() method to remove the newline character from a string. The strip() method will remove both trailing and leading newlines from the string. It also removes any whitespaces on both sides of a string.
The clue is in the signature of rstrip
.
It returns a copy of the string, but with the desired characters stripped, thus you'll need to assign line
the new value:
line = line.rstrip('\n')
This allows for the sometimes very handy chaining of operations:
"a string".strip().upper()
As Max. S says in the comments, Python strings are immutable which means that any "mutating" operation will yield a mutated copy.
This is how it works in many frameworks and languages. If you really need to have a mutable string type (usually for performance reasons) there are string buffer classes.
you can do it like this
def add_quotes( fpath ):
ifile = open( fpath, 'r' )
ofile = open( 'ofile.txt', 'w' )
for line in ifile:
line=line.rstrip()
convertedline = '"' + line + '", '
ofile.write( convertedline + "\n" )
ifile.close()
ofile.close()
As alluded to in Skurmedel's answer and the comments, you need to do something like:
stripped_line = line.rstrip()
and then write out stripped_line.
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