Найти - Пользователи
Полная версия: Удаление последнего символа в текстовом файле
Начало » Python для новичков » Удаление последнего символа в текстовом файле
1
XdenisX
Коллеги, хочу удалить в пакетном режиме последний символ в каждом текстовом файле (знак переноса строки).
Как это лучше сделать?
bw
Укорачивает файл на 1 байт, самый быстрый способ:
>>> f = open('somefile.txt, 'ab')
>>> f.truncate(f.tell() - 1)
>>> f.close()
Если файл имеет нулевую длину, получишь ошибку (IOError) в момент truncate'а.

Кошерный способ, должен быть самым быстрым, урезает не более 10 последних \r и \n:
>>> f = open('otherfile.txt', 'rb')
>>> f.seek(0, 2)
>>> f.seek(max(f.tell() - 10, 0))
>>> tail_bytes = f.read()
>>> f.close()
>>> f = open('otherfile.txt', 'ab')
>>> f.truncate(f.tell() - len(tail_bytes))
>>> f.write(tail_bytes.rstrip('\r\n'))
>>> f.close()
p.s. А вообще, я с файлами на таком уровне не работаю, так что не эксперт :-).

..bw
XdenisX
bw
Укорачивает файл на 1 байт, самый быстрый способ:
>>> f = open('somefile.txt, 'ab')
>>> f.truncate(f.tell() - 1)
>>> f.close()
Если файл имеет нулевую длину, получишь ошибку (IOError) в момент truncate'а.
Отлично, большое спасибо! Второй способ пока не пробовал.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB