Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/103: Рейтинг темы: голосов - 103, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 18
1

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

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

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

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

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

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

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

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

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

15
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
26.05.2016, 05:44 2
Лучший ответ Сообщение было отмечено 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 3
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  [ТС] 4
pyuser, А не подскажите как указать что файлы 1-4.txt в кодеровке utf8 куда уже только не тыкал encode"utf8" пишет invalid syntax

Добавлено через 5 минут
pyuser, А не подскажите как указать что файлы 1-4.txt в кодеровке utf8 куда уже только не тыкал encode"utf8" пишет invalid syntax
0
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
26.05.2016, 18:23 5
Цитата Сообщение от bobbibob Посмотреть сообщение
invalid syntax
И кодировка ни как не связаны, это небо и земля.
0
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 18
26.05.2016, 18:26  [ТС] 6
Цитата Сообщение от alex925 Посмотреть сообщение
Сообщение от bobbibob
invalid syntax
И кодировка ни как не связаны, это небо и земля.
Это он пишет конда я вставляю encode
а так он пишет
File "1.py", line 31, in <module>
for line in f:
File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\fileinput.py
", line 265, in __next__
line = self.readline()
File "C:\Users\User\AppData\Local\Programs\Python\Python35-32\lib\fileinput.py
", line 370, in readline
self._buffer = self._file.readlines(self._bufsize)
File "C:\Users\User\AppData\Local\Programs\Python\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
563 / 303 / 189
Регистрация: 20.05.2016
Сообщений: 592
26.05.2016, 18:40 7
(pyuser, извините, что отвечаю вместо вас)
bobbibob, кажется так
Python
1
2
fileinput.input(
        files=["{}.txt".format(i) for i in range(1, 5)]), openhook=fileinput.hook_encoded("utf8"))
0
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
26.05.2016, 19:03 8
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  [ТС] 9
Цитата Сообщение от 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 10
Python
1
2
import os
os.remove(filename)
0
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
27.05.2016, 00:20 11
Цитата Сообщение от bobbibob Посмотреть сообщение
А как удалить все файлы .txt в папке питоном?
НЕЛЬЗЯ ничего класть в папку интерпретатора, вообще туда не лазий!
0
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 18
27.05.2016, 00:27  [ТС] 12
Цитата Сообщение от 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
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
27.05.2016, 00:49 13
bobbibob, нужно код ошибки выкладывать ну, а вообще ошибка в 15 строке
Python
1
os.remove('1.txt')
0
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 18
27.05.2016, 01:02  [ТС] 14
Да так и было! Спасибо!!!

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

Добавлено через 16 часов 13 минут
Уже не надо. собрал сам из различных кусков кода нормального Франкенштейна.
0
08.08.2017, 11:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.08.2017, 11:28
Помогаю со студенческими работами здесь

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

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

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

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

Загрузка нескольких текстовых файлов в поле Memo
Здравствуйте. Помогите пожалуйста разобраться, как открыть в Memo несколько текстовых файлов? Когда...

Вычисление количества символов в нескольких текстовых файлов
здрасте. нужно сделать так, чтобы при выборе нескольких текстовых файлов высчитовалось количество...

Загрузка нескольких текстовых файлов в базу данных
ПРОШУ ПОМОЧЬ USER`у!!! Тема такая: Постановка задачи: 1. по нажатию кнопки на форме ACCESS...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru