0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 18

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

25.05.2016, 23:24. Показов 22782. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста!
Есть 4 файла текстовых 1.txt, 2.txt, 3.txt и 4.txt
как их склеить по очередности в 5 файл, но чтобы каждый следующий файл записывался со следущей строки

Добавлено через 1 минуту
а если еще в конечном файле удалялись слова next все кроме 1ого

Добавлено через 25 секунд
сам нуб в python-е, да и не только в нем
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.05.2016, 23:24
Ответы с готовыми решениями:

Совмещение нескольких текстовых файлов в один
Делаю программу на С++ под linux и не знаю как совместить несколько текстовых файлов в один, что бы с помощью командной строки можно было...

Объединить содержимое нескольких текстовых файлов в один
Напишите командный файл, который позволяет объединить содержимое не- скольких текстовых файлов в один, имя которого должно задаваться в...

Импорт нескольких текстовых файлов на один лист в Excel с возможностью задания маски
Здравствуйте! Нужна помощь по открытию нескольких текстовых файлов со строго определенным разделителем на один лист в Excel. При этом...

15
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
26.05.2016, 05:44
Лучший ответ Сообщение было отмечено bobbibob как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
import fileinput
 
first = True
with open("5.txt", "wt", encoding="cp1251") as out, fileinput.input(
        files=["{}.txt".format(i) for i in range(1, 5)]) as f:
    for line in f:
        if "next" in line:
            if not first:
                line = line.replace("next", "")
            else:
                first = False
        out.write(line)
1
Заблокирован
26.05.2016, 11:51
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
lstr = []
for path in ['1.txt', '2.txt', '3.txt', '4.txt' ]:
    with open(path) as f:
         lstr.append(f.read())
         lstr.append('\n') #вроде это символ перевода строки, если нет то поправь
 
for idx, s in enumerate(lstr):
    a =  s.find('next')
    if a:
         lstr[idx] = s[:a] + s[(a+4):]
         break
 
with open('5.txt', 'a') as f:
     for s in lstr:
         f.write(s)
0
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 18
26.05.2016, 18:02  [ТС]
pyuser, А не подскажите как указать что файлы 1-4.txt в кодеровке utf8 куда уже только не тыкал encode"utf8" пишет invalid syntax

Добавлено через 5 минут
pyuser, А не подскажите как указать что файлы 1-4.txt в кодеровке utf8 куда уже только не тыкал encode"utf8" пишет invalid syntax
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
26.05.2016, 18:23
Цитата Сообщение от bobbibob Посмотреть сообщение
invalid syntax
И кодировка ни как не связаны, это небо и земля.
0
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 18
26.05.2016, 18:26  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
Сообщение от bobbibob
invalid syntax
И кодировка ни как не связаны, это небо и земля.
Это он пишет конда я вставляю encode
а так он пишет
File "1.py", line 31, in <module>
for line in f:
File "C:\Users\User\AppData\Local\Programs\Py thon\Python35-32\lib\fileinput.py
", line 265, in __next__
line = self.readline()
File "C:\Users\User\AppData\Local\Programs\Py thon\Python35-32\lib\fileinput.py
", line 370, in readline
self._buffer = self._file.readlines(self._bufsize)
File "C:\Users\User\AppData\Local\Programs\Py thon\Python35-32\lib\encodings\cp
1251.py", line 23, in decode
return codecs.charmap_decode(input,self.errors, decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 3084: cha
racter maps to <undefined>
0
757 / 306 / 190
Регистрация: 20.05.2016
Сообщений: 593
26.05.2016, 18:40
(pyuser, извините, что отвечаю вместо вас)
bobbibob, кажется так
Python
1
2
fileinput.input(
        files=["{}.txt".format(i) for i in range(1, 5)]), openhook=fileinput.hook_encoded("utf8"))
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
26.05.2016, 19:03
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
first = True
with open('5.txt', 'wt', encoding='utf8') as out:
    all_data = ''.join(
        [open('{}.txt'.format(i), encoding='utf8').read() for i in range(1, 5)]
    )
    for line in all_data.split('\n'):
        print(line)
        if 'next' in line:
            if not first:
                line = line.replace('next', '')
            else:
                first = False
        out.write(line + '\n')
1
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 18
26.05.2016, 22:53  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
PythonВыделить код
1
2
3
4
5
6
7
8
9
10
11
12
13
first = True
with open('5.txt', 'wt', encoding='utf8') as out:
* * all_data = ''.join(
* * * * [open('{}.txt'.format(i), encoding='utf8').read() for i in range(1, 5)]
* * )
* * for line in all_data.split('\n'):
* * * * print(line)
* * * * if 'next' in line:
* * * * * * if not first:
* * * * * * * * line = line.replace('next', '')
* * * * * * else:
* * * * * * * * first = False
* * * * out.write(line + '\n')
Всё работает!!! Огромное Человеческое спасибо!!!

Добавлено через 31 минуту
а почему когда добавляю out.close() в конце, что бы добавить еще действие с конечным файлом он мне пишет
Python
1
TabError: inconsistent use of tabs and spaces in indentation?
Добавлено через 11 минут
Разобрался!! Всем огромное спасибо за помощь!!

Добавлено через 1 час 51 минуту
А как удалить все файлы .txt в папке питоном?

Добавлено через 38 секунд
точнее те 4 которые были в 5 переработаны
0
Заблокирован
27.05.2016, 00:14
Python
1
2
import os
os.remove(filename)
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
27.05.2016, 00:20
Цитата Сообщение от bobbibob Посмотреть сообщение
А как удалить все файлы .txt в папке питоном?
НЕЛЬЗЯ ничего класть в папку интерпретатора, вообще туда не лазий!
0
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 18
27.05.2016, 00:27  [ТС]
Цитата Сообщение от askurandrio Посмотреть сообщение
PythonВыделить код
1
2
import os
os.remove(filename)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import os
first = True
with open('5.txt', 'wt', encoding='utf8') as out:
* * all_data = ''.join(
* * * * [open('{}.txt'.format(i), encoding='utf8').read() for i in range(1, 5)]
* * )
* * for line in all_data.split('\n'):
* * * * print(line)
* * * * if 'next' in line:
* * * * * * if not first:
* * * * * * * * line = line.replace('next', '')
* * * * * * else:
* * * * * * * * first = False
* * * * out.write(line + '\n')
os.remove(1.txt)
не удаляет ошибка вылезает
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
27.05.2016, 00:49
bobbibob, нужно код ошибки выкладывать ну, а вообще ошибка в 15 строке
Python
1
os.remove('1.txt')
0
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 18
27.05.2016, 01:02  [ТС]
Да так и было! Спасибо!!!

Добавлено через 29 секунд
а можно сделать что бы он удалял все txt файлы, что бы не перечислять их?
0
Заблокирован
27.05.2016, 11:56
Через команду os.remove никак. Либо иди по списку, либо через subprocess запускай del path\*.txt
0
0 / 0 / 0
Регистрация: 08.05.2014
Сообщений: 6
08.08.2017, 11:28
Подскажите, плиз, вариант кода, когда в папке находятся файлы не с номерным именем, а с произвольным. Нужно считать имена файлов в папке и объеденить после этого их в один фаил. Заранее благодарен.

Добавлено через 16 часов 13 минут
Уже не надо. собрал сам из различных кусков кода нормального Франкенштейна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.08.2017, 11:28
Помогаю со студенческими работами здесь

Склейка нескольких XML файлов
По заданию нужно склеить xml файлы в один. XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(&quot;путь...

[Embarcadero C++] Склейка нескольких файлов в единый
Добрый день. Стоит задача создания небольшого пакета файлов, будем называть это &quot;Архивом&quot;, где присутствует изображение - (Файл...

Обработка группы файлов и "склейка" файлов в один
Здравствуйте. Извините за глупый вопрос, но тем не менее: Подскажите, как лучше поступить: &quot;склеить&quot; несколько файлов word...

Открытие нескольких текстовых файлов
Добрый день! У меня такая проблема: есть множество текстовых файлов, необходимо открыть все и определить есть ли в данном файле указанная...

Импорт нескольких текстовых файлов в excel
Здравствуйте. Нужна помощь с импортом нескольких текстовых файлов которые имеют вид: номер значение значение значение номер значение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru