Как связать файлы в python
Перейти к содержимому

Как связать файлы в python

  • автор:

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » Связать 2 файла python

#1 Фев. 27, 2020 21:52:40

zarscap Зарегистрирован: 2020-02-27 Сообщения: 3 Репутация: 0 Профиль Отправить e-mail

Связать 2 файла python

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

#2 Фев. 28, 2020 06:48:34

doza_and От: Зарегистрирован: 2010-08-15 Сообщения: 4138 Репутация: 252 Профиль Отправить e-mail

Связать 2 файла python

Интерпретатору вообще пофиг на файлы, все живет в памяти а не в файлах. Чего ему дали то он и проинтерпретировал. А взять текст он может из любого количества файлов, пользователь может что-то понавводить, по сети куски кода прилетят и т. д.

Как связать файлы между собой, подобно тому как это сделано в java пакатех?

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

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

  • Вопрос задан более трёх лет назад
  • 789 просмотров

Как соединить 2 txt файла в python

Смотрели какие параметры принимает write и что у вас будет в txt1 и txt2? В write нужно строку или байты писать, а в txt1/txt2 будут списки из строк. Да и для вашей задачи не нужно всё это.

13 апр 2022 в 8:52

начните с изучения того, как вызывать метод write (какой синтаксис допустим?). А также посмотрите на методы строк, раз уж объединить строки пытаетесь. Как изучите и перепишете скрипт — возвращайтесь, если не заработает.

13 апр 2022 в 8:56

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Я бы считал из файлов байты и записал как байты, тогда не придется указывать кодировку

with open("txtfile.txt", "wb") as file: with open("txt1.txt", "rb") as txt: file.write(txt.read()) with open("txt2.txt", "rb") as txt: file.write(txt.read()) 

Если нужны какие-то разделители между содержимым файлов, то записывайте их как байты:

file.write(b' ') 
file.write(b'\n') 

Объединение файлов с помощью 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, содержащий полный путь до каждого файла и его название.

Переходим к шагу 2.

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

result=pd.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) позволяет собрать информацию о листах.

Шаг 3 и завершающий.

Сохраняем получившийся 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') 

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *