Склеить 2 файла python

Объединить несколько текстовых файлов в один текстовый файл, используя python

Как мы можем сделать один текстовый файл, как показано ниже:

abc def ghi ABC DEF GHI adfafa ewrtwe rewrt wer wrwe 
import csv import glob files = glob.glob('*.txt') for file in files: with open('result.txt', 'w') as result: result.write(str(file)+'\n') 

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

import glob read_files = glob.glob("*.txt") with open("result.txt", "wb") as outfile: for f in read_files: with open(f, "rb") as infile: outfile.write(infile.read()) 

Вы можете попробовать что-то вроде этого:

import glob files = glob.glob( '*.txt' ) with open( 'result.txt', 'w' ) as result: for file_ in files: for line in open( file_, 'r' ): result.write( line ) 

Должно быть прямо прочитано.

Модуль fileinput идеально подходит для этого варианта использования.

import fileinput import glob file_list = glob.glob("*.txt") with open('result.txt', 'w') as file: input_lines = fileinput.input(file_list) file.writelines(input_lines) 

Также возможно объединить файлы, включив команды ОС. Пример:

import os import subprocess subprocess.call("cat *.csv > /path/outputs.csv") 
filenames = ['resultsone.txt', 'resultstwo.txt'] with open('resultsthree', 'w') as outfile: for fname in filenames: with open(fname) as infile: for line in infile: outfile.write(line) 

Источник

Объединение файлов с помощью Python

На первом шаге пройдемся по нашей папке (очень важно, чтобы все файлы, которые необходимо объединить, находились в одной папке) и запишем в список название файлов + путь. Это можно сделать с помощью 2 библиотек: os или glob.

import pandas as pd import os my_list=[] for root, dirs, files in os.walk('ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\***.xlsx'): my_list.extend([os.path.join(root,file) for file in files if file.endswith('xlsx')]) print(my_list) ['ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\file.xlsx', 'ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\file2.xlsx', 'ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\file3.xlsx', 'ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\file4.xlsx', 'ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\file5.xlsx', 'ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\file6.xlsx'] 

Важно! При указании пути до папки ставить «\\».

file.endswith(`***`) используется для поиска, в круглых скобках можно указать любое расширение xlsx, xls, csv и т.д.

import glob my_list=[] my_list.extend(glob.glob('ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\***.xlsx') print(my_list) ['ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\file.xlsx', 'ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\file2.xlsx', 'ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\file3.xlsx', 'ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\file4.xlsx', 'ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\file5.xlsx', 'ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\file6.xlsx'] 

И в первом и во втором варианте результат получился одинаковый — список my_list, содержащий полный путь до каждого файла и его название.

Создаем DataFrame, в который поочередно будем записывать всю информацию, содержащуюся в каждом файле.

Пробегаемся по списку my_list, читаем файл и записываем его в созданный DataFrame.

for file in my_list: df = pd.read_excel(file) result=result.append(df) 

Если же ваши выгрузки содержат информацию, на нескольких листах, то добавляем еще один цикл.

for file in my_list: f = pd.ExcelFile(file) for sheet in f.sheet_names: df = pd.read_excel((file),sheet_name=sheet) result=result.append(df) 

pd.ExcelFile(file) позволяет собрать информацию о листах.

Сохраняем получившийся DataFrame в excel или же csv.

result.to_excel('result.csv') result.to_csv('result.csv', sep = ';', encoding = 'cp1251') 
import pandas as pd import os import glob #1 вариант my_list=[] for root, dirs, files in os.walk('ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\***.xlsx'): my_list.extend([os.path.join(root,file) for file in files if file.endswith('xlsx')]) #2 вариант my_list=[] my_list.extend(glob.glob('ДИСК:\\Папка1\\Папка2\\***\\ПапкаN\\***.xlsx') result=pd.DataFrame() for file in my_list: f = pd.ExcelFile(file) for sheet in f.sheet_names: df = pd.read_excel((file),sheet_name=sheet) result=result.append(df) result.to_excel('result.csv') result.to_csv('result.csv', sep = ';', encoding = 'cp1251') 

А как вы объединяете файлы? Делитесь опытом в комментариях.

Источник

Применение Python для объединения файлов.

Не смотря на широко развивающуюся автоматизацию, еще приходится сталкиваться с отсутствием баз данных. Например, некоторые отчеты сохраняются в отдельных файлах Excel в разрезе каждого дня, причем в каждом файле содержатся множество листов с названиями городов. Естественно для анализа информации нам понадобится объединение информации в сводный отчет, причем с сохранением названий городов. Эту задачу помог нам решить Pandas совместно с библиотекой os, при условии одинаковой структуры отчетов и названия листов в файлах. Рассмотрим программу пошагово.

Импортируем необходимые библиотеки.

import pandas as pd from os import listdir import os 

Создадим список, в котором перечислим все необходимые наименования листов,

и пустой объект Dataframe (далее – DF), который будет собирать в себе все отчеты, которые необходимо объединить.

Используя цикл «for» каждый Excel-файл в указанной директории (в нашем случае рабочая директория совпадает с директорией, в которой расположен скрипт) импортируется его при помощи метода «read_excel()» в объект DF. После чего, используя метод «append()», добавляем импортированный DF в DF, созданный в Шаге 2. По итогу мы получаем объект DF, содержащий в себе данные всех исходных файлов в директории.

for city in _list: print(city) fileList = listdir(os.getcwd()) for file in fileList: if file[0] != '~' and file[-4:] == 'xlsx': print(file) try: fileData = pd.read_excel( file, sheetname=city, ) fileData['city'] = city data = data.append(fileData, ignore_index=True) except: print('ERROR^', city, file) 

Шаг 4. Используя метод «to_excel()» экспортируем данные из объединенного DF в файл Excel.

data.to_excel('result\\result.xlsx', index=False) print('end') 

Источник

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

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

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

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

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

Лучший ответ

Сообщение было отмечено bobbibob как решение

Решение

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 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)

pyuser, А не подскажите как указать что файлы 1-4.txt в кодеровке utf8 куда уже только не тыкал encode»utf8″ пишет invalid syntax

Добавлено через 5 минут
pyuser, А не подскажите как указать что файлы 1-4.txt в кодеровке utf8 куда уже только не тыкал encode»utf8″ пишет invalid syntax

ЦитатаСообщение от bobbibob Посмотреть сообщение

ЦитатаСообщение от alex925 Посмотреть сообщение

Это он пишет конда я вставляю encode
а так он пишет
File «1.py», line 31, in
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

fileinput.input( files=["<>.txt".format(i) for i in range(1, 5)]), openhook=fileinput.hook_encoded("utf8"))
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')

ЦитатаСообщение от 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() в конце, что бы добавить еще действие с конечным файлом он мне пишет

TabError: inconsistent use of tabs and spaces in indentation?

Добавлено через 11 минут
Разобрался!! Всем огромное спасибо за помощь!!

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

Добавлено через 38 секунд
точнее те 4 которые были в 5 переработаны

import os os.remove(filename)

ЦитатаСообщение от bobbibob Посмотреть сообщение

ЦитатаСообщение от askurandrio Посмотреть сообщение

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)

Добавлено через 29 секунд
а можно сделать что бы он удалял все txt файлы, что бы не перечислять их?

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

Добавлено через 16 часов 13 минут
Уже не надо. собрал сам из различных кусков кода нормального Франкенштейна.

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

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

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

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

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

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

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

Источник

Читайте также:  Visual code php настройка
Оцените статью