Этот вопрос уже имеет ответ здесь:
Получение по запросу моих волос здесь... играло вокруг с этим в течение прошлого часа, но я не могу заставить это делать то, что я хочу, т.е. удаляю последовательность новой строки.
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
.
Она возвращает копию строки, но с нужными символами, таким образом, необходимо присвоить строке
новое значение:
line = line.rstrip('\n')
Это позволяет иногда очень удобно выполнять цепочки операций:
"a string".strip().upper()
As Max. S говорит в комментариях, что питоновские строки неизменны, что означает, что любая "мутирующая" операция приведет к мутирующей копии.
Так это работает во многих фреймворках и языках. Если вам действительно нужен мутируемый тип строки (обычно из соображений производительности), то существуют буферные классы строк.
Вы можете сделать это так, как это
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()
, как указано в ответе Skurmedel и комментариями, вам нужно сделать что-то вроде:
stripped_line = line.rstrip()
, а затем выписывают strack_line.