Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Задача скопировать файлы Эксель в неизменном виде
- import os
- import shutil
- # адрес папки, где лежат файлы для перезаписи
- dir_start = r"C:\Users\sport\Desktop\test"
- # адрес папки куда записать файлы
- dir_end = r"C:\Users\sport\Desktop\test2"
- # создаем пустой список, куда будем складывать имена и адреса всех перезаписываемых файлов
- filelist=[]
- # Получаем все xlsx файлы из папки dir_start включая подпапки
- for path, subdirs, files in os.walk(dir_start):
- # Пробегаем по файлам из списка файлов files
- for file in files:
- if (file.endswith('.xlsx') or file.endswith('.xls') or file.endswith('.XLS')):
- # добавляем в список filelist имя и путь считанного из папки dir_start файла
- filelist.append(os.path.join(path, file))
- # осуществляем копирование файла в новую папку. Название файла не меняем
- shutil.copy(os.path.join(path, file), os.path.join(dir_end, file))
- number_of_files=len(filelist)
- [print(f"Файл {x} записан в папку {dir_end }") for x in filelist]
- print(f"Всего записано {number_of_files} файла/ов")
-
- Задача скопировать файлы Эксель , оставив только 1й лист.
- import pandas as pd
- import os
- # адрес папки, где лежат файлы для перезаписи
- dir_start = r"C:\Users\sport\Desktop\test"
- # адрес папки куда записать файлы
- dir_end = r"C:\Users\sport\Desktop\test2"
- # создаем пустой список, куда будем складывать имена и адреса всех перезаписываемых файлов
- filelist=[]
- # Получаем все xlsx файлы из папки dir_start включая подпапки
- for path, subdirs, files in os.walk(dir_start):
- # Пробегаем по файлам из списка файлов files
- for file in files:
- if (file.endswith('.xlsx') or file.endswith('.xls') or file.endswith('.XLS')):
- # добавляем в список filelist имя и путь считанного из папки dir_start файла
- filelist.append(os.path.join(path, file))
- # считываем файл с расширением xlsx xls XLS в объект пандаса ExcelFile
- excel_data = pd.ExcelFile(os.path.join(path, file))
- # кладем считанный файл в объект панадаса ExcelWriter для последующей записи
- writer = pd.ExcelWriter(os.path.join(dir_end, file))
- # В переменную df_tmp считываем первый рабочий лист файла
- df_tmp = excel_data.parse(excel_data.sheet_names[0])
- # записываем
- df_tmp.to_excel(writer, index=False)
- writer.save()
- number_of_files=len(filelist)
- [print(f"Файл {x} записан в папку {dir_end }") for x in filelist]
- print(f"Всего записано {number_of_files} файла/ов")
-
- Задача скопировать файлы Эксель со всеми внутренними листами, при этом названия листов поменять на числовые по порядку
- import pandas as pd
- import os
- # адрес папки, где лежат файлы для перезаписи
- dir_start = r"C:\Users\sport\Desktop\test"
- # адрес папки куда записать файлы
- dir_end = r"C:\Users\sport\Desktop\test2"
- # создаем пустой список, куда будем складывать имена и адреса всех перезаписываемых файлов
- filelist=[]
- # Получаем все xlsx файлы из папки dir_start включая подпапки
- for path, subdirs, files in os.walk(dir_start):
- # Пробегаем по файлам из списка файлов files
- for file in files:
- if (file.endswith('.xlsx') or file.endswith('.xls') or file.endswith('.XLS')):
- # добавляем в список filelist имя и путь считанного из папки dir_start файла
- filelist.append(os.path.join(path, file))
- # считываем файл с расширением xlsx xls XLS в объект пандаса ExcelFile
- excel_data = pd.ExcelFile(os.path.join(path, file))
- # кладем считанный файл в объект панадаса ExcelWriter для последующей записи
- writer = pd.ExcelWriter(os.path.join(dir_end, file))
- # пробегаем по рабочим листам в объекте пандаса ExcelFile
- i = 0
- for sheet in excel_data.sheet_names: # здесь получаем имя листа
- i += 1 # новое имя листа в скопированном файле
- df_tmp = excel_data.parse(sheet) # здесь считываем в пандасовский датафрейм лист полученный на предыдущем шаге
- df_tmp.to_excel(writer, sheet_name=str(i), index=False) # записываем лист в объект writer
- writer.save()
- number_of_files=len(filelist)
- [print(f"Файл {x} записан в папку {dir_end }") for x in filelist]
- print(f"Всего записано {number_of_files} файла/ов")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement