Merhaba,
Başlangıç düzeyde Python kullanıcısıyım. İş yerimde zamandan tasarruf için Outlook üzerinden .msg dosyaları içerisinde yer alan HTML tabloları .csv’ye dönüştürerek analiz yapmak istiyorum. Bunun için bir arayüz inşa ederek .exe dosyası üzerinden pratikliğe kavuşturmak istedim. MSG to CSV dönüşümünü yapan kodlar* VS Code ile çalışıyor. Ancak bunu Tkinter aracılığıya VS Code üzerinden çalıştırdığımda " PermissionError: [Errno 13] Permission denied: ‘C:/Users/emiraksop/Desktop/Mayis’ " hatası alıyorum.
Kod bloğunu ve tasarımı aşağıya bırakıyorum.
Özetle,
Open butonu ile klasör yolunu seçeceğim ve içerisindeki *msg uzantılı dosyaları html to csv kod dönüşümü yapılarak Save butonu ile bilgisayarımdaki ilgili klasöre *csv olarak kaydedeceğim.
Umarım bir çözüm yolu vardır.
Selamlar.
*How to Export Tables from Outlook Mail to Excel | FinTechChef | Python | Outlook to Excel - YouTube
import os
import win32com.client as wc
import pandas as pd
from tkinter import *
from tkinter import filedialog
def openFile():
filepath1 = filedialog.askdirectory(initialdir = "C:\\Users\\emiraksop")
file1 = open(filepath1,"r")
print(file1.read())
file1.close()
def saveFile():
filepath2 = filedialog.askdirectory(initialdir = "C:\\Users\\emiraksop")
file2 = open(filepath2,'a')
print(file2.append())
file2.close()
files = os.listdir()
for file in files:
if file.endswith(".msg"):
outlook = wc.Dispatch('Outlook.Application').GetNamespace('MAPI')
msg = outlook.OpenSharedItem(openFile + '/' + file)
html_str = msg.HTMLBody
try:
pd.read_html(html_str)[0].to_csv(saveFile + '\\' + file[:-4] + '.csv', index = False)
except ValueError:
continue
window = Tk()
canvas = Canvas(window, height=100, width=400)
canvas.pack()
window.title('.msg html file to .csv')
button1 = Button(text="Open", height=5, width=15, command=openFile)
button1.pack()
button2 = Button(text="Save",height=5, width=15, command=saveFile)
button2.pack()
window.mainloop()