A numpy csomag array típusú változói számos előnyös tulajdonsággal rendelkeznek a sima list típusú változókhoz képest. A numpy csomag biztosít néhány hasznos filekezelő rutint, melyek az array tipusú változók file-ba kiírására, illetve file-okból történő beolvasására használhatóak.
Nagy tömbök kiíratása szöveges fájlokba nagyon lassú lehet.
Nagyon fontos a gyors kiírás-beolvasás, érdemes lehet a numpy bináris save-load függvényeit használni.
%pylab inline
# Populating the interactive namespace from numpy and matplotlib
import random
import os, sys
print("Jelenlegi munka könyvtár1 " , os.getcwd()) ## munkakönyvtár kiírása
#nagyobbacska tomb
a = list(range(20))
for i in range(20):
a[i]= i+1
# a.add(random.randint(1, 2048))
# a=random.random((2048,2048))
# a= random.randint(1, 2048)
print('------ mentés v1')
%time savetxt('out_tmp.txt',a)
print('------ mentésv2')
%time save('out_tmp.npy',a)
print('------ olvas v1')
%time a1=loadtxt('out_tmp.txt')
print('------ olvas v2')
%time a2=load('out_tmp.npy')
print('------ filek mérete')
# !du -h data/out_tmp.txt
# !du -h data/out_tmp.npy
Populating the interactive namespace from numpy and matplotlib Jelenlegi munka könyvtár1 c:\Users\User\Documents\kepek\allat ------ mentés v1 Wall time: 1e+03 µs ------ mentésv2 Wall time: 0 ns ------ olvas v1 Wall time: 999 µs ------ olvas v2 Wall time: 0 ns ------ filek mérete
import numpy as np
np.array([1, 2, 3]).tofile("a.bin")
print (np.fromfile("a.bin", dtype=np.int64))
[8589934593]
## A hdf fájlok
A Hierarchical Data Format vagy röviden hdf, egy széles körben elterjedt formátum nagymennyiségű tudományos adatok tárolására, és megosztására. Két fontos verziója használatos, melyek nem igazán kompatibilisek. Itt a HDF5-ös fájlok megnyitásáról lesz szó, mely jelentősen egyszerűbb adatcsoportosítást használ az elődjénél (4-es verzió).
A HDF5 fájlok esetében az értékes adatokat csoportokba, és alcsoportokba lehet rendezni, melyek között lehetőség van hivatkozásokat tenni. Úgy lehet elképzelni, mint egy kisebb fajta könyvtárszerkezetet, melyben szerteszét vannak az adatok.
A HDF5 fájlok belső szerkezete két fő egységből építhető fel, mint ahogy az ábrán is látszik. Leíró részek azaz metadatok illetve maguk az adatok. Az adatokat többdimenziós adattáblákban tároljuk.
Maga a HDF5 fájl belső csoportosítása hasonlóan hívható meg, mint egy hagyományos könyvtárstruktúra. Itt is definiálva van a "root" csoport, aminek alcsoportjai vannak, melyeknek (mint a könyvtárainknak) neveket adjhatunk. Egy adott adattömb elérési útvonala: /"csoportnév"/adatok
A pythonban a hdf5 fájlokat a h5py csomag tudja legegyszerűbben beolvasni, így itt ennek a működését mutatjuk be.
A HDF5 fájlok nagyon hatékonyan tudják a bonyolult adatszerkezeteket tárloni. A hatékony adattárolást nagyban segíti,
hogy az adattömbök különböző relációkat és összefüggéseket is eltárolhatnak.
Ennek persze az az ára, hogy az ilyen fájlok felhasználó általi olvasása nehezebb, mint az egyszerű szövegfájlok esetén,
a konkrét adatok eléréséhez ismerni kell ezen fájlok felépítését.
import h5py
f = h5py.File("store.h5", "r")
print(list(f.keys()) )# ha nem rendezzük listába akkor nem írja ki szépen!
print('--------------1')
print(list(f["data"].keys()) )
print('--------------2')
print(list(f["data"].values()) )
print('--------------3')
['data'] --------------1 ['axis0', 'axis1', 'block0_items', 'block0_values', 'block1_items', 'block1_values', 'block2_items', 'block2_values'] --------------2 [<HDF5 dataset "axis0": shape (3,), type "|S1">, <HDF5 dataset "axis1": shape (1,), type "<i8">, <HDF5 dataset "block0_items": shape (1,), type "|S1">, <HDF5 dataset "block0_values": shape (1, 1), type "<f8">, <HDF5 dataset "block1_items": shape (1,), type "|S1">, <HDF5 dataset "block1_values": shape (1, 1), type "<i8">, <HDF5 dataset "block2_items": shape (1,), type "|S1">, <HDF5 dataset "block2_values": shape (1,), type "|O">] --------------3
import os, sys
print("Jelenlegi munka könyvtár1 " , os.getcwd()) ## munkakönyvtár kiírása
df = pd.DataFrame([[1, 1.0, 'a']], columns=['x', 'y', 'z'])
df.to_hdf('store.h5', 'data')
reread = pd.read_hdf('store.h5')
Jelenlegi munka könyvtár1 c:\Users\User\Documents\kepek\allat
import glob
glob.glob('*.ipynb') ## .ipynb kiterjesztéső fájlok az aktuális könyvtárban.
['kl_diagrammok_minta.ipynb', 'kl_python_alapok2.ipynb', 'kl_python_sqlite_minta_01.ipynb', 'kl_py_adatelemzes_pandas.ipynb', 'kl_py_alapok_01.ipynb', 'kl_py_basic.ipynb', 'kl_py_comprehension.ipynb', 'kl_py_diagramok_2D.ipynb', 'kl_py_file_kezeles.ipynb', 'kl_py_interakcio.ipynb', 'kl_py_jupiternb_muvelek.ipynb', 'kl_py_kepzaj_javito.ipynb', 'kl_py_kep_mod.ipynb', 'kl_py_kezdolepes.ipynb', 'kl_py_magikus_metodusok.ipynb', 'kl_py_markdown.ipynb', 'kl_py_okt_01.ipynb', 'kl_py_okt_02.ipynb', 'kl_py_okt_03.ipynb', 'kl_py_okt_04.ipynb', 'kl_py_okt_05.ipynb', 'kl_py_okt_06.ipynb', 'kl_py_okt_07.ipynb', 'kl_py_okt_08.ipynb', 'kl_py_okt_09.ipynb', 'kl_py_ora_xls_ki.ipynb', 'kl_py_plotly.ipynb', 'kl_py_random.ipynb', 'kl_py_regexp.ipynb', 'kl_py_scraping01.ipynb', 'kl_py_teszt.ipynb', 'kl_py_vezerlok.ipynb', 'kl_py_web_kep_letolt.ipynb', 'kl_py_web_scrawler.ipynb', 'kl_py_word_cloud.ipynb', 'kl_py_xls.ipynb']
Az úgynevezett „list comprehension” („lista-felfogás”) módszer, amellyel kompakt módon tudunk listákat létrehozni.
Lényege, hogy a lista elemeit nem direkt módon adjuk meg, hanem egy speciális iterációval.
Itt nem szükséges egy komplett, klasszikus iterációt megírnunk, hanem elintézhetjük ezt egy egyszerű, egyetlen soros összetett utasításban.
lista = [] # üres lista deklarációja for i in xrange(1, 101): # iteráció 1-től 100-ig lista.append(i) # a lista bővítése a ciklusváltozó aktuális értékével
lista = [i for i in xrange(1, 101)] # a fentiek mind egy sorban
<lista változó> = [<kifejezés> for <ciklusváltozó> in <tartomány> if <feltétel>]
paros_negyzet = [i**2 for i in range(1, 101) if i % 2 == 0] ## páros négyzetek kikeresése
print(paros_negyzet)
[4, 16, 36, 64, 100, 144, 196, 256, 324, 400, 484, 576, 676, 784, 900, 1024, 1156, 1296, 1444, 1600, 1764, 1936, 2116, 2304, 2500, 2704, 2916, 3136, 3364, 3600, 3844, 4096, 4356, 4624, 4900, 5184, 5476, 5776, 6084, 6400, 6724, 7056, 7396, 7744, 8100, 8464, 8836, 9216, 9604, 10000]
## Könyvtár végilolvasásához alapok (játek a könyvtárakkal)
import os, sys
print("Jelenlegi munka könyvtár1 " , os.getcwd()) ## munkakönyvtár kiírása
os.chdir(r"c:\Users\User\Documents\kepek\allat") ## munkakönyvtár beállítása
print("Jelenlegi munka könyvtár2 " , os.getcwd()) ## munkakönyvtxxár kiírása
## ---------------- könyvtárban levő állományok listába olvasása 1. (walk)
print('------------------- walk')
from os import walk
myfiles = []
mypath=os.getcwd()
for (dirpath, dirnames, filenames) in walk(mypath): ## kiolvasás
myfiles.extend(filenames)
for i in myfiles: ## megjelenítés
print(i)
print('------------------- walk')
# r=root, d=directories, f = files
for r, d, f in os.walk(mypath):
for file in f:
if ".jpg" in file:
print(os.path.join(r, file))
print('-------------------listdir')
## ---------------- könyvtárban levő állományok listába olvasása 2. (listdir)
from os import listdir
from os.path import isfile, join
mypath=os.getcwd()
myfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
for i in myfiles: ## megjelenítés
print(i)
print('------------------- glob')
## ---------------- könyvtárban levő kép (jpg) állományok listába olvasása 3. (glob)
import glob
myfiles = []
mypath=os.getcwd()
print(mypath)
# myfiles = glob.glob(mypath + r'\*.jpg') ## közvetlen betöltéssel és teljes elérési névvel
# myfiles = [f for f in glob.glob("*.jpg")] ## list comprehension-al
for file in glob.glob(r'*.jpg'):
myfiles.append(file)
for i in myfiles: ## megjelenítés
print(i)
print('------------------- lisdir')
import os
myfiles = [os.path.abspath(x) for x in os.listdir()] ## teljes elérési névvel
for i in myfiles: ## megjelenítés
print(i)
print('------------------- glob és pathlib')
import pathlib
py = pathlib.Path().glob("*.jpg")
for file in py:
print(file)
print('------------------- scandir')
import os
with os.scandir() as i:
for entry in i:
if entry.is_file():
print(entry.name)
Jelenlegi munka könyvtár1 C:\Users\User\Documents\mintak\jupiter\kl\okt Jelenlegi munka könyvtár2 c:\Users\User\Documents\kepek\allat ------------------- walk drawing.png drawing_dark.png Dsc_8579_roka.jpg Dsc_8579_roka_thumbnail.jpg Dsc_8579_roka_uj.jpg Dsc_8596_mokus.jpg Dsc_8596_mokus_thumbnail.jpg Dsc_8601_mokus.jpg Dsc_8601_mokus_thumbnail.jpg Dsc_8619_mokus.jpg Dsc_8619_mokus_szurke2.jpg Dsc_8619_mokus_szurke2_cropped.jpg Dsc_8619_mokus_szurke2_cropped_thumbnail.jpg Dsc_8619_mokus_szurke2_logo.jpg Dsc_8619_mokus_szurke2_logo_thumbnail.jpg Dsc_8619_mokus_szurke2_thumbnail.jpg Dsc_8619_mokus_thumbnail.jpg kep_file.jpg mosomedve.png out_mentett_kep.jpg out_mentett_kep.png out_mentett_kep.tiff python_rajz.png python_rajz2.png python_rajz_dark.png text_kepbe.png ------------------- walk c:\Users\User\Documents\kepek\allat\Dsc_8579_roka.jpg c:\Users\User\Documents\kepek\allat\Dsc_8579_roka_thumbnail.jpg c:\Users\User\Documents\kepek\allat\Dsc_8579_roka_uj.jpg c:\Users\User\Documents\kepek\allat\Dsc_8596_mokus.jpg c:\Users\User\Documents\kepek\allat\Dsc_8596_mokus_thumbnail.jpg c:\Users\User\Documents\kepek\allat\Dsc_8601_mokus.jpg c:\Users\User\Documents\kepek\allat\Dsc_8601_mokus_thumbnail.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus_szurke2.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus_szurke2_cropped.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus_szurke2_cropped_thumbnail.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus_szurke2_logo.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus_szurke2_logo_thumbnail.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus_szurke2_thumbnail.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus_thumbnail.jpg c:\Users\User\Documents\kepek\allat\kep_file.jpg c:\Users\User\Documents\kepek\allat\out_mentett_kep.jpg -------------------listdir drawing.png drawing_dark.png Dsc_8579_roka.jpg Dsc_8579_roka_thumbnail.jpg Dsc_8579_roka_uj.jpg Dsc_8596_mokus.jpg Dsc_8596_mokus_thumbnail.jpg Dsc_8601_mokus.jpg Dsc_8601_mokus_thumbnail.jpg Dsc_8619_mokus.jpg Dsc_8619_mokus_szurke2.jpg Dsc_8619_mokus_szurke2_cropped.jpg Dsc_8619_mokus_szurke2_cropped_thumbnail.jpg Dsc_8619_mokus_szurke2_logo.jpg Dsc_8619_mokus_szurke2_logo_thumbnail.jpg Dsc_8619_mokus_szurke2_thumbnail.jpg Dsc_8619_mokus_thumbnail.jpg kep_file.jpg mosomedve.png out_mentett_kep.jpg out_mentett_kep.png out_mentett_kep.tiff python_rajz.png python_rajz2.png python_rajz_dark.png text_kepbe.png ------------------- glob c:\Users\User\Documents\kepek\allat Dsc_8579_roka.jpg Dsc_8579_roka_thumbnail.jpg Dsc_8579_roka_uj.jpg Dsc_8596_mokus.jpg Dsc_8596_mokus_thumbnail.jpg Dsc_8601_mokus.jpg Dsc_8601_mokus_thumbnail.jpg Dsc_8619_mokus.jpg Dsc_8619_mokus_szurke2.jpg Dsc_8619_mokus_szurke2_cropped.jpg Dsc_8619_mokus_szurke2_cropped_thumbnail.jpg Dsc_8619_mokus_szurke2_logo.jpg Dsc_8619_mokus_szurke2_logo_thumbnail.jpg Dsc_8619_mokus_szurke2_thumbnail.jpg Dsc_8619_mokus_thumbnail.jpg kep_file.jpg out_mentett_kep.jpg ------------------- lisdir c:\Users\User\Documents\kepek\allat\drawing.png c:\Users\User\Documents\kepek\allat\drawing_dark.png c:\Users\User\Documents\kepek\allat\Dsc_8579_roka.jpg c:\Users\User\Documents\kepek\allat\Dsc_8579_roka_thumbnail.jpg c:\Users\User\Documents\kepek\allat\Dsc_8579_roka_uj.jpg c:\Users\User\Documents\kepek\allat\Dsc_8596_mokus.jpg c:\Users\User\Documents\kepek\allat\Dsc_8596_mokus_thumbnail.jpg c:\Users\User\Documents\kepek\allat\Dsc_8601_mokus.jpg c:\Users\User\Documents\kepek\allat\Dsc_8601_mokus_thumbnail.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus_szurke2.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus_szurke2_cropped.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus_szurke2_cropped_thumbnail.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus_szurke2_logo.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus_szurke2_logo_thumbnail.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus_szurke2_thumbnail.jpg c:\Users\User\Documents\kepek\allat\Dsc_8619_mokus_thumbnail.jpg c:\Users\User\Documents\kepek\allat\kep_file.jpg c:\Users\User\Documents\kepek\allat\mosomedve.png c:\Users\User\Documents\kepek\allat\out_mentett_kep.jpg c:\Users\User\Documents\kepek\allat\out_mentett_kep.png c:\Users\User\Documents\kepek\allat\out_mentett_kep.tiff c:\Users\User\Documents\kepek\allat\python_rajz.png c:\Users\User\Documents\kepek\allat\python_rajz2.png c:\Users\User\Documents\kepek\allat\python_rajz_dark.png c:\Users\User\Documents\kepek\allat\text_kepbe.png ------------------- glob és pathlib Dsc_8579_roka.jpg Dsc_8579_roka_thumbnail.jpg Dsc_8579_roka_uj.jpg Dsc_8596_mokus.jpg Dsc_8596_mokus_thumbnail.jpg Dsc_8601_mokus.jpg Dsc_8601_mokus_thumbnail.jpg Dsc_8619_mokus.jpg Dsc_8619_mokus_szurke2.jpg Dsc_8619_mokus_szurke2_cropped.jpg Dsc_8619_mokus_szurke2_cropped_thumbnail.jpg Dsc_8619_mokus_szurke2_logo.jpg Dsc_8619_mokus_szurke2_logo_thumbnail.jpg Dsc_8619_mokus_szurke2_thumbnail.jpg Dsc_8619_mokus_thumbnail.jpg kep_file.jpg out_mentett_kep.jpg ------------------- scandir drawing.png drawing_dark.png Dsc_8579_roka.jpg Dsc_8579_roka_thumbnail.jpg Dsc_8579_roka_uj.jpg Dsc_8596_mokus.jpg Dsc_8596_mokus_thumbnail.jpg Dsc_8601_mokus.jpg Dsc_8601_mokus_thumbnail.jpg Dsc_8619_mokus.jpg Dsc_8619_mokus_szurke2.jpg Dsc_8619_mokus_szurke2_cropped.jpg Dsc_8619_mokus_szurke2_cropped_thumbnail.jpg Dsc_8619_mokus_szurke2_logo.jpg Dsc_8619_mokus_szurke2_logo_thumbnail.jpg Dsc_8619_mokus_szurke2_thumbnail.jpg Dsc_8619_mokus_thumbnail.jpg kep_file.jpg mosomedve.png out_mentett_kep.jpg out_mentett_kep.png out_mentett_kep.tiff python_rajz.png python_rajz2.png python_rajz_dark.png text_kepbe.png
## CSV file írása 1.
# modul betöltése
import csv
import os, sys
print("Jelenlegi munka könyvtár1 " , os.getcwd()) ## munkakönyvtár kiírása
objs = [{'name': 'knut', 'age': 74, 'count': 13},
{'name': 'lydia', 'age': 14, 'count': 3}]
headers = ['name', 'age', 'count']
with open("minta.csv", "w", newline='') as outfile:
## mező szeparátor: TAB : \t
writer = csv.writer(outfile, delimiter="\t", quotechar='"', quoting=csv.QUOTE_ALL)
## ielőszőr a fejlécet írjuk ki
writer.writerow(headers)
## ciklusban írjuk kia az adatokat
for obj in objs:
writer.writerow([obj[key] for key in headers])
print('kész a csv file írása')
Jelenlegi munka könyvtár1 c:\Users\User\Documents\kepek\allat kész a csv file írása
## CSV file írása 2.
# modul betöltése
import csv
import os, sys
print("Jelenlegi munka könyvtár1 " , os.getcwd()) ## munkakönyvtár kiírása
with open('minta2.csv', 'w', newline='') as csvfile:
spamwriter = csv.writer(csvfile, delimiter='\t', quotechar='"', quoting=csv.QUOTE_MINIMAL)
spamwriter.writerow(['Felj'] * 2 + ['Fejl5'])
spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
print('kész a csv file írása')
Jelenlegi munka könyvtár1 c:\Users\User\Documents\kepek\allat kész a csv file írása
## CSV file írása 3.
# modul betöltése
import csv
import os, sys
print("Jelenlegi munka könyvtár1 " , os.getcwd()) ## munkakönyvtár kiírása
import csv
with open('employee_file2.csv', mode='w', newline='') as csv_file:
fieldnames = ['emp_name', 'dept', 'birth_month']
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'emp_name': 'John Smith', 'dept': 'Accounting', 'birth_month': 'November'})
writer.writerow({'emp_name': 'Erica Meyers', 'dept': 'IT', 'birth_month': 'March'})
print('kész a csv file írása')
Jelenlegi munka könyvtár1 c:\Users\User\Documents\kepek\allat kész a csv file írása
## CSV file olvasása 1.
# modul betöltése
import csv
import os, sys
print("Jelenlegi munka könyvtár1 " , os.getcwd()) ## munkakönyvtár kiírása
# olvasásra megnyitas
csv1 = open('minta.csv', 'r')
# változóba olvasás
read = csv.reader(csv1)
#tartalom megjelenitése soronként
for row in read:
print(row)
Jelenlegi munka könyvtár1 c:\Users\User\Documents\kepek\allat ['name\t"age"\t"count"'] ['knut\t"74"\t"13"'] ['lydia\t"14"\t"3"']
## CSV file olvasása 2.
import csv
with open('minta.csv', newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter='\t', quotechar='"')
for row in spamreader:
print(', '.join(row))
print('---------------- elválasztás')
with open('minta2.csv', newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter='\t', quotechar='"')
for row in spamreader:
print(', '.join(row))
name, age, count knut, 74, 13 lydia, 14, 3 ---------------- elválasztás Felj, Felj, Fejl5 Spam, Lovely Spam, Wonderful Spam
## excel olvasása
import pandas as pd
import numpy as np
df = pd.read_excel(r'c:\Users\User\Documents\mintak\jupiter\kl\telepules.xlsx')
print('kiírás kész')
import pandas as pd
# xls beolvasás
df = pd.read_excel(r'c:\Users\User\Documents\mintak\jupiter\kl\telepules.xlsx', sheet_name='telepules')
# xls manipuláció
df.drop(['lakos'], axis=3)
# xls kiírás új állományba
writer = pd.ExcelWriter(r'c:\Users\User\Documents\mintak\jupiter\kl\output.xlsx')
df.to_excel(writer,'Sheet1')
writer.save()
print('kiírás kész')
kiírás kész
import pandas as pd
read_file = pd.read_excel (r'c:\Users\User\Documents\mintak\jupiter\kl\telepules.xlsx', sheet_name='telepules')
read_file.to_csv (r'c:\Users\User\Documents\mintak\jupiter\kl\telepules_ki.csv', index = None, header=True)
print('kiírás kész')
kiírás kész
## koplett windows -os alkalmazás xls -> konverzióra
import tkinter as tk
from tkinter import filedialog
from tkinter import messagebox
import pandas as pd
root= tk.Tk()
canvas1 = tk.Canvas(root, width = 300, height = 300, bg = 'lightsteelblue2', relief = 'raised')
canvas1.pack()
label1 = tk.Label(root, text='File Conversion Tool', bg = 'lightsteelblue2')
label1.config(font=('helvetica', 20))
canvas1.create_window(150, 60, window=label1)
def getExcel ():
global read_file
import_file_path = filedialog.askopenfilename()
read_file = pd.read_excel (import_file_path)
browseButton_Excel = tk.Button(text=" Import Excel File ", command=getExcel, bg='green', fg='white', font=('helvetica', 12, 'bold'))
canvas1.create_window(150, 130, window=browseButton_Excel)
def convertToCSV ():
global read_file
export_file_path = filedialog.asksaveasfilename(defaultextension='.csv')
read_file.to_csv (export_file_path, index = None, header=True)
saveAsButton_CSV = tk.Button(text='Convert Excel to CSV', command=convertToCSV, bg='green', fg='white', font=('helvetica', 12, 'bold'))
canvas1.create_window(150, 180, window=saveAsButton_CSV)
def exitApplication():
MsgBox = tk.messagebox.askquestion ('Exit Application','Are you sure you want to exit the application',icon = 'warning')
if MsgBox == 'yes':
root.destroy()
exitButton = tk.Button (root, text=' Exit Application ',command=exitApplication, bg='brown', fg='white', font=('helvetica', 12, 'bold'))
canvas1.create_window(150, 230, window=exitButton)
root.mainloop()
import openpyxl
wb = openpyxl.load_workbook(r'c:\Users\User\Documents\mintak\jupiter\kl\telepules.xlsx')
sheet = wb.active
sheet['C5'] = 42
mezo ='C2'
sheet[mezo] = 'C2'
for i in range(20):
mezo_iro = 'A' + str(i+1)
sheet[mezo_iro] = i+1
wb.save(r'c:\Users\User\Documents\mintak\jupiter\kl\telepules_m2.xlsx')
print('kiírás kész')
kiírás kész
# letiltása a autoanswer párbeszédablak a makrókat
import win32com.client as win32
import os
parent_dir = r'c:\Users\User\Documents\mintak\jupiter\kl'
input_files = os.listdir(parent_dir)
print(input_files)
input_files = [parent_dir +'\\'+ i for i in input_files if i.endswith('.xls') or i.endswith('.xlsx')]
print(input_files)
for input_file in input_files:
if not os.path.isfile(input_file.replace('.xls', '.xlsx')):
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(input_file)
wb.SaveAs(input_file +'x2', FileFormat=51) # FileFormat = 51 is for .xlsx extension
print('excel :', input_file)
wb.Close() # FileFormat = 56 is for .xls extension
excel.Application.Quit()
print('Módosítás kész')
['.ipynb_checkpoints', 'alice.png', 'alice.txt', 'alice_color.png', 'alice_mask.png', 'cache', 'clock_demo.kv', 'cookbook-2nd-code-master', 'Django_By_Example_Code', 'downloaded', 'feliratok.srt', 'feliratok.txt', 'game_v2.kv', 'GraphAlgorithms1.ipynb', 'indexholvan.xlsx', 'indexholvan.xlsxx2', 'it_bi.jpg', 'kari_fa.jpg', 'kari_fa.png', 'kari_fa_sz.png', 'kari_fa_sz2.png', 'kari_fa_word_cloud_szines.png', 'kari_szofelho.txt', 'kepek', 'kimenet.csv', 'KL_karacsonyi_szofelho.png', 'kl_mie_python_logo.jpg', 'kl_mie_python_logo.png', 'kl_mie_python_logo_atlatszo.png', 'kl_py_alapok_01.ipynb', 'kl_py_anaconda.jpg', 'kl_py_anaconda.png', 'kl_py_graph.ipynb', 'kl_py_hanoi_tornyok.ipynb', 'kl_py_java.ipynb', 'kl_py_kepfeldolgozas.ipynb', 'kl_py_kep_info_olvas.ipynb', 'kl_py_kep_mod.ipynb', 'kl_py_kivy.ipynb', 'kl_py_notebok_alapok01.ipynb', 'kl_py_rendezesek.ipynb', 'kl_py_soduku.ipynb', 'kl_py_web_scrawler.ipynb', 'kl_py_word_cloud.ipynb', 'KL_tonok_harca_veg_szo_felho.png', 'kp_py_alapok_dok.ipynb', 'kp_py_geomap.ipynb', 'kp_py_info.txt', 'kp_py_kivy_map.jpg', 'kp_py_kivy_map.png', 'layer_manager_hu.kl_py_okt.txt', 'lkl_labirintus.ipynb', 'mapview', 'messi.jpg', 'my.kv', 'notebooks', 'okt', 'output.xlsx', 'output.xlsxx2', 'puzzle.csv', 'Python.svg.cloud.png', 'python_spyper_map.jpg', 'python_szofelho.txt', 'py_code.jpg', 'py_kepek.png', 'ronaldo.jpg', 'telepules.csv', 'telepules.xlsx', 'telepules.xlsxx2', 'telepules_ki.csv', 'telepules_m2.xlsx', 'telepules_m2.xlsxx2', 'teszt1', 'th8e6.txt', 'tronok_harca.png'] ['c:\\Users\\User\\Documents\\mintak\\jupiter\\kl\\indexholvan.xlsx', 'c:\\Users\\User\\Documents\\mintak\\jupiter\\kl\\output.xlsx', 'c:\\Users\\User\\Documents\\mintak\\jupiter\\kl\\telepules.xlsx', 'c:\\Users\\User\\Documents\\mintak\\jupiter\\kl\\telepules_m2.xlsx'] excel : c:\Users\User\Documents\mintak\jupiter\kl\indexholvan.xlsx excel : c:\Users\User\Documents\mintak\jupiter\kl\output.xlsx excel : c:\Users\User\Documents\mintak\jupiter\kl\telepules.xlsx excel : c:\Users\User\Documents\mintak\jupiter\kl\telepules_m2.xlsx Módosítás kész