Помогите разбить текстовку - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB93.4409
BTC/USD64315.8942
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 04.02.2014, 18:43   #1
Kyzmit4
Senior Member
 
Аватар для Kyzmit4
 
Регистрация: 15.03.2008
Сообщений: 125
Бабло: $24525
По умолчанию Помогите разбить текстовку

Дібрій дінь! )
Господа питонисты, нужна помощь)
Есть текстовый файл со строками типо:
Блалалала. Нананннанна. Бубубубубу....
Нужен скриптик, который бы брал строку, разбивал ее на предложения до точки и разбрасывал по файлам.
Например:
Блалалала. - file1.txt
Нананннанна. - file2.txt
Бубубубубу.... - file3.txt
Kyzmit4 вне форума  
Старый 04.02.2014, 20:26   #2
masolit
Senior Member
 
Регистрация: 18.08.2007
Сообщений: 1,098
Бабло: $199375
По умолчанию

PHP код:
#!/usr/bin/env python
# coding: utf-8

from random import random

input_file 
'my_file.txt'

with open(input_file) as filename:
    for 
line in filename:
        for 
splited in line.split('.'):
            
with open('file_{0:.5f}.txt'.format(random()), 'w') as outputfile:
                
outputfile.write(splited.strip()) 
с рандомной номерацией файлов
masolit вне форума  
Старый 04.02.2014, 20:47   #3
masolit
Senior Member
 
Регистрация: 18.08.2007
Сообщений: 1,098
Бабло: $199375
По умолчанию

PHP код:
#!/usr/bin/env python
# coding: utf-8

for _v in enumerate([for y in [x.strip().split('.') for x in open('my_file.txt').readlines()] for x in y]):
    
with open('file_{0}.txt'.format(_), 'w') as outputfile:
            
outputfile.write(v
если не огромные файлы, то с нумерацией файлов
masolit вне форума  
Старый 04.02.2014, 21:12   #4
Kyzmit4
Senior Member
 
Аватар для Kyzmit4
 
Регистрация: 15.03.2008
Сообщений: 125
Бабло: $24525
ТС -->
автор темы ТС По умолчанию

Упс, с пьяну не так выразился)
По сути файлов должно быть столько, сколько предложений в строке от точки до точки. те. до первой точки складывает в file1.txt, до второй точки в file2.txt и тд...
пример:
Есть строки в файле
Предложение1. Предложение2. Предложение3...
Предложение1. Предложение2. Предложение3...
Предложение1. Предложение2. Предложение3...
....

Предложение1 - идут в file1.txt
Предложение2 - идут в file2.txt
Предложение3 - идут в file3.txt

Вот как-то так)
Kyzmit4 вне форума  
Старый 04.02.2014, 21:49   #5
masolit
Senior Member
 
Регистрация: 18.08.2007
Сообщений: 1,098
Бабло: $199375
По умолчанию

последний скрипт так и делает
masolit вне форума  
Старый 04.02.2014, 23:11   #6
Kyzmit4
Senior Member
 
Аватар для Kyzmit4
 
Регистрация: 15.03.2008
Сообщений: 125
Бабло: $24525
ТС -->
автор темы ТС По умолчанию

Спасибо, но нимного не то)Оно создает тучу файлов)
Количество файлов должно быть равно количеству предложений в строке.
Может опять непонятно написал, уточню)

Есть строки в файле
Предложение1. Предложение2. Предложение3...
Предложение1. Предложение2. Предложение3...
Предложение1. Предложение2. Предложение3...
....

Все строки файла до 1-й точки с Предложением1 - идут в file1.txt
Все строки файла до 2-й точки с Предложением2 - идут в file2.txt
Все строки файла до 3-й точки с Предложением3 - идут в file3.txt

На выходе получаем 3 файла
file1.tx в котором все строки с предложениями до 1-й точки:
Предложение1
Предложение1
Предложение1

file2.tx в котором все строки с предложениями до 2-й точки:
Предложение2
Предложение2
Предложение2

file3.tx в котором все строки с предложениями до 3-й точки:
Предложение3
Предложение3
Предложение3
Kyzmit4 вне форума  
Старый 04.02.2014, 23:22   #7
masolit
Senior Member
 
Регистрация: 18.08.2007
Сообщений: 1,098
Бабло: $199375
По умолчанию

PHP код:
#!/usr/bin/env python
# coding: utf-8

with open('my_file.txt') as input_file:
    for 
line in input_file:
        for 
_splited in enumerate(line.split('.')):
            
with open('file_{0}.txt'.format(_), 'a') as output_file:
                
output_file.write(splited.strip() + '\n'
masolit вне форума  
Старый 04.02.2014, 23:34   #8
Kyzmit4
Senior Member
 
Аватар для Kyzmit4
 
Регистрация: 15.03.2008
Сообщений: 125
Бабло: $24525
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от masolit Посмотреть сообщение
PHP код:
#!/usr/bin/env python
# coding: utf-8

with open('my_file.txt') as input_file:
    for 
line in input_file:
        for 
_splited in enumerate(line.split('.')):
            
with open('file_{0}.txt'.format(_), 'a') as output_file:
                
output_file.write(splited.strip() + '\n'
Вот оно!) Спасибо, дай аллах тебе урожай фиников, отныне и во веки веков
Kyzmit4 вне форума