Форум сайта python.su
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png) 
			 
							 0
  0   
								
								Коллеги, хочу удалить в пакетном режиме последний символ в каждом текстовом файле (знак переноса строки). 
Как это лучше сделать?
Офлайн
 
							 20
  20   
								
								Укорачивает файл на 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)
Офлайн
 
							 0
  0   
								
								bwОтлично, большое спасибо! Второй способ пока не пробовал.
Укорачивает файл на 1 байт, самый быстрый способ:Если файл имеет нулевую длину, получишь ошибку (IOError) в момент truncate'а.>>> f = open('somefile.txt, 'ab')
>>> f.truncate(f.tell() - 1)
>>> f.close()
Офлайн
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png)