Страница 1 из 1

Соединить текстовые файлы

Добавлено: 13 окт 2014, 10:26
angelok
Всем привет. Такая задачка нужно объединить много текстовых файлов в один, и чтобы в итоговом был столбец имя файла. Как это можно сделать?

Re: Соединить текстовые файлы

Добавлено: 13 окт 2014, 10:38
bingeomap
А более подробно можно? Желательно, и пример тоже.

Re: Соединить текстовые файлы

Добавлено: 13 окт 2014, 10:45
angelok
создать один большой текстовый файл, причем перед содержимым каждого файла в целевой файл помещается его имя

Re: Соединить текстовые файлы

Добавлено: 13 окт 2014, 11:17
trir
Боюсь - только программно, и боюсь это совершенно вредное занятие...

Re: Соединить текстовые файлы

Добавлено: 13 окт 2014, 12:21
Игорь Белов
Простите, не понял, в Logs.zip исходные файлы или готовые результаты? Если исходные, очевидна корреляция между названиями файлов и содержимым поля "[Mainline] Name". Имя файла уже есть! Вам действительно нужно продублировать его в первой колонке, добавив расширение ".txt"?

Re: Соединить текстовые файлы

Добавлено: 13 окт 2014, 15:25
nickleb
Попробуем забить микроскопом гвоздики:
В Python'е:

Код: Выделить всё

#подключение модуля os 
import os 

#директорий
dir_angelok = 'D:' + os.sep + '2014_For' + os.sep + '2014_for_Angelok_GisLab' + os.sep

#список файлов в переменную 
all_files = os.listdir(dir_angelok)

#маска файлов
maska_of_files = '.txt'

#фильтр списка файлов 
PLKAS_txt = filter(lambda x: x.endswith(maska_of_files), all_files)

#имя файла для записи
TOTAL_File = dir_angelok + 'TOTAL.DAT'

#открытие файла для записи
total_file = open(TOTAL_File, 'w')

#цикл по файлам 
for i in range(len(PLKAS_txt)):
    print i, PLKAS_txt[i]
    #текущий файл
    current_file = dir_angelok + PLKAS_txt[i]
    with open(current_file) as f:
        #запись заголовка файла
        total_file.write(PLKAS_txt[i]+'\n')
        #запись содержимого текущего файла файла   
        total_file.write(f.read())

#закрытие файла
total_file.close()
print "File ", TOTAL_File, " is Ready!" 

Re: Соединить текстовые файлы

Добавлено: 13 окт 2014, 15:35
nickleb
trir правильно написал, что "...это совершенно вредное занятие..." можно в shell'е операционки всё написать...

Re: Соединить текстовые файлы

Добавлено: 13 окт 2014, 19:41
ericsson
Угу, какого-нибудь

Код: Выделить всё

for %F in (*.txt) do echo "%F" > logs.txt & type %F > logs.txt 
вполне хватило бы (подпилить по вкусу).

Re: Соединить текстовые файлы

Добавлено: 14 окт 2014, 08:22
angelok
ErnieBoyd писал(а):Простите, не понял, в Logs.zip исходные файлы или готовые результаты? Если исходные, очевидна корреляция между названиями файлов и содержимым поля "[Mainline] Name". Имя файла уже есть! Вам действительно нужно продублировать его в первой колонке, добавив расширение ".txt"?
В том примере, что я выслала действительно есть номер линии в текстовых файлах. Но на этот раз логи, которые мне нужно обработать будут без этой колонки.

Re: Соединить текстовые файлы

Добавлено: 14 окт 2014, 08:24
angelok
Спасибо всем за ответы, пробую...