Найти - Пользователи
Полная версия: Разбить текстовый файл на n кусков по m байт.
Начало » Python для новичков » Разбить текстовый файл на n кусков по m байт.
1 2
Kogrom
Всё равно тут уже пример дали, так что и я поиграюсь:

filename = "*****.***"
BUFF_LEN = 1000

def ReadGen(genFile):
while(True):
buff = genFile.read(BUFF_LEN)
if not buff: return
yield buff

for i, buff in enumerate(ReadGen(open(filename, "rb"))):
open(str(i) + '_' + filename, "wb").write(buff)
Функция с генератором кривоватая какая-то, но лучших делать пока не научился.
UsCr
Создаю файл так:
f = open("test.txt", "w")
for i in range(10000):
f.write("Fish\n")
f.close()
Получаю файл размеров в 59 КБ.
Читаю из него так:
f = open("test.txt", "r")
f_ = open("test_.txt", "w")
data = f.read(1000)
f_.write(data)
f_.close()
f.close()
Получаю файл размером в 2 КБ, содержащим 200 строк слова “Fish”.
Ed
Прям таки и 2 килобайта! Это у вас по 10.24 байта на строку “Fish” приходится :)
UsCr
Ну…Винда считает именно так.
FAR говорит что test_.txt весит 1,200 байт.
Ed
Это уже другое дело. Скорее всего такой эффект из-за того, что файл в текстовом виде открыли, концы строк прибавляются. В бинарном будет ровно 1000.
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