Удалить перевод строки / возврат каретки в файле вывода - PullRequest
10 голосов
/ 25 января 2011

У меня есть список слов, который содержит возвраты, чтобы отделить каждую новую букву. Есть ли способ программно удалить каждый из этих возвратов, используя файловый ввод / вывод в Python?

Редактировать: я знаю, как манипулировать строками для удаления возвратов. Я хочу физически отредактировать файл, чтобы эти возвраты были удалены.

Я ищу что-то вроде этого:

wfile = open("wordlist.txt", "r+")           
for line in wfile:
    if len(line) == 0:
        # note, the following is not real... this is what I'm aiming to achieve.
        wfile.delete(line)

Ответы [ 6 ]

18 голосов
/ 25 января 2011
>>> string = "testing\n"
>>> string
'testing\n'
>>> string = string[:-1]
>>> string
'testing'

Это в основном говорит "отрубить последнюю вещь в строке" : является оператором "среза".Было бы неплохо прочитать о том, как это работает, поскольку это очень полезно.

РЕДАКТИРОВАТЬ

Я только что прочитал ваш обновленный вопрос,Я думаю, что теперь понимаю.У вас есть файл, например:

aqua:test$ cat wordlist.txt 
Testing

This

Wordlist

With

Returns

Between

Lines

, и вы хотите избавиться от пустых строк.Вместо изменения файла во время чтения из него, создайте новый файл, в который вы можете записать непустые строки из старого файла, например, так:

# script    
rf = open("wordlist.txt")
wf = open("newwordlist.txt","w")
for line in rf:
    newline = line.rstrip('\r\n')
    wf.write(newline)
    wf.write('\n')  # remove to leave out line breaks
rf.close()
wf.close()

Вы должны получить:

aqua:test$ cat newwordlist.txt 
Testing
This
Wordlist
With
Returns
Between
Lines

Если вы хотите что-то вроде

TestingThisWordlistWithReturnsBetweenLines

, просто закомментируйте

wf.write('\n')
16 голосов
/ 25 января 2011

Вы можете использовать метод строки rstrip для удаления символов новой строки из строки.

>>> 'something\n'.rstrip('\r\n')
>>> 'something'
3 голосов
/ 25 января 2011

Наиболее эффективным является не указывать значение полосы

'\nsomething\n'.split() удалит все специальные символы и пробелы из строки

2 голосов
/ 27 мая 2013

просто используйте, это решает проблему.

   string.strip("\r\n")
1 голос
/ 31 января 2011

Удалить пустые строки в файле:

#!/usr/bin/env python
import fileinput

for line in fileinput.input("wordlist.txt", inplace=True):
    if line != '\n':
       print line,

Файл перемещается в файл резервной копии, и стандартный вывод направляется во входной файл.

0 голосов
/ 19 мая 2017
'whatever\r\r\r\r\r\r\r\r\n\n\n\n\n'.translate(None, '\r\n')

возвращает

'whatever'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...