Форум сайта python.su
Коллеги, хочу удалить в пакетном режиме последний символ в каждом текстовом файле (знак переноса строки).
Как это лучше сделать?
Офлайн
Укорачивает файл на 1 байт, самый быстрый способ:
>>> f = open('somefile.txt, 'ab')
>>> f.truncate(f.tell() - 1)
>>> f.close()
>>> 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()
Отредактировано (Июль 9, 2010 14:11:30)
Офлайн
bwОтлично, большое спасибо! Второй способ пока не пробовал.
Укорачивает файл на 1 байт, самый быстрый способ:Если файл имеет нулевую длину, получишь ошибку (IOError) в момент truncate'а.>>> f = open('somefile.txt, 'ab')
>>> f.truncate(f.tell() - 1)
>>> f.close()
Офлайн