0

I currently have two different python scripts. The first one converts parquet files to xlsx and the second is really just trying to build a gui to be able to run the first script.**

Here is the first script:

import pandas as pd
import os
import pyarrow
import shutil
from pathlib import Path
file = input("What file would you like to convert from parquet to csv? ")
df1 = pd.read_parquet(file)
df = df1.append(df1, ignore_index=True)
dirout = input("Where would you like the xlsx file to be output to?")
name = input("What would you like to call the ouput file?" )
cfile = os.path.join(dirout, name + "." + "xlsx")
df.to_excel(cfile)

In this second script I would like the user to input txt that would feed file, name and dirout. Is that possible?

import os
from tkinter import *

window = Tk()
window.title("Convertor")
#Sets the size of the window
window.geometry('550x400')

#Adds a header to the window and configures the size 
lbl = Label(window, text="Convert Parquet to CSV", font=("Arial Bold", 18))

#Configures where the label message will appear
lbl.grid(column=0, row=0)

#adds an input text message
txt = Entry(window,width = 30)
txt.grid(column=3, row=3)

txt = Entry(window,width = 30)
txt.grid(column=4, row=4)
def clicked():
    os.system('python ParquetToCsv.py')
#Adding a button
btn = Button(window, text="Convert", command=clicked)
btn.grid(column=6, row = 6)

#The mainloop causes the window to remain open until someone interacts with it
window.mainloop()

1 Answer 1

1

Turn your first script into a function with arguments for the variables you want to pass:

def myfunc(f, n, dir):
   file = f
   df1 = pd.read_parquet(file)
   df = df1.append(df1, ignore_index=True)
   dirout = dir
   name = n
   cfile = os.path.join(dirout, name + "." + "xlsx")
   df.to_excel(cfile)

Then import the function into the other script and call it passing the arguments:

import os
from tkinter import *
from myutils import myfunc

window = Tk()
window.title("Convertor")
#Sets the size of the window
window.geometry('550x400')

#Adds a header to the window and configures the size 
lbl = Label(window, text="Convert Parquet to CSV", font=("Arial Bold", 18))

#Configures where the label message will appear
lbl.grid(column=0, row=0)

#adds an input text message
txt_name = Entry(window,width = 30)
txt.grid(column=3, row=3)

txt_file = Entry(window,width = 30)
txt.grid(column=4, row=4)

txt_dir = Entry(window,width = 30)
txt.grid(column=4, row=4)
def clicked():
    os.system('python ParquetToCsv.py')
#Adding a button
btn = Button(window, text="Convert", command=clicked)
btn.grid(column=6, row = 6)

#The mainloop causes the window to remain open until someone interacts with it
window.mainloop()

# Call function passing the arguments
myfunc(txt_file, txt_name, txt_dir)
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.