Tkinter FileDialog
If all of the files you need to open are accessible from a central location you could have your if
statement open the file they needed for them.
Try setting those files as variables:
t_test = r'Path\To\File\location\t-test.file'
and so on for the rest of your files.
Then, instead of telling them what to open just open it with os.system()
:
os.system(t_test)
Don't forget to import os
with the rest of your imports.
I figured it out on my own, with some help from the internet of course. My updated code is:
from Tkinter import *import tkMessageBoxfrom scipy import statsimport csvsample=[]def load_file(): fname = askopenfilename(filetypes = (("Text Files", ".txt"), ("HTML Files", "*.html;*.htm"), ("All Files", "*.*"))) global sample if fname: print "uploading file...",fname try: print("""Here comes the file""") except: showerror("Open Source File", "Failed to read file\n'%s'" % fname) ifile = open(fname, "rb") data = csv.reader(ifile,delimiter=' ') rownum = 0 for row in data: colnum = 0 d=[] for col in row: print '%s' % col d.append(float(col)) colnum += 1 sample.append(d) rownum += 1 ifile.close() print sampledef choose(): global sample if q1.get() == 1 and q2.get() == 1 and q3.get() == 1 and q4.get() == 2 and q5.get() == 1 and q6.get() == 2 and q7.get() == 2 and q8.get() == 2 and q9.get() == 2 : tkMessageBox.showinfo('t-test', 't-value is %s, p=%s' %stats.ttest_1samp(sample[0], 0.50 )) #will do t-test here print sample # now sample list contains the data for doing t-test, #you just need to call t-test to get the results and show it on message box elif q1.get() == 1 and q2.get() == 2 and q3.get() == 1 and q4.get() == 1 and q5.get() == 2 and q6.get() == 2 and q7.get() == 2 and q8.get() == 2 and q9.get() == 2: tkMessageBox.showinfo('z-test', 'test statistic is %s, p=%s'%stats.ttest_1samp(sample[0], 5.0)) elif q1.get() == 1 and q2.get() == 1 and q3.get() == 2 and q4.get() == 2 and q5.get() == 1 and q6.get() == 2 and q7.get() == 1 and q8.get() == 2 and q9.get() == 2: tkMessageBox.showinfo('Paired t-test', 'test statistic is %s, p=%s'%stats.ttest_rel(sample[0], sample[1])) elif q1.get() == 2 and q2.get() == 1 and q3.get() == 2 and q4.get() == 2 and q5.get() == 1 and q6.get() == 1 and q7.get() == 2 and q8.get() == 2 and q9.get() == 2: tkMessageBox.showinfo('Two sample t-test', 'test statistic is %s, p=%s'%stats.ttest_ind(sample[0], sample[1])) elif q1.get() == 2 and q2.get() == 2 and q3.get() == 1 and q4.get() == 1 and q5.get() == 2 and q6.get() == 1 and q7.get() == 2 and q8.get() == 2 and q9.get() == 2: tkMessageBox.showinfo('Two sample z-test', 'test statistic is %s, p=%s'%stats.ttest_ind(sample[0], sample[1])) else: tkMessageBox.showinfo('decision', 'You have either incorrectly answered a question about your data or none of the available tests are appropriate.') #root.destroy()root = Tk()q1 = IntVar()Label(root, text="""How many samples do you have?""", justify = LEFT, padx = 20).pack(anchor=W)Radiobutton(root, text="One", padx = 20, variable=q1, value=1).pack(anchor=N)Radiobutton(root, text="Two", padx = 20, variable=q1, value=2).pack(anchor=N)q2 = IntVar()Label(root, text="""Which choice most closely fits your sample size?""", justify = LEFT, padx = 20).pack(anchor=W)Radiobutton(root, text = """Less than 30""", padx = 20, variable=q2, value = 1).pack(anchor=N)Radiobutton(root, text = """Greater than or equal to 30""", padx = 20, variable=q2, value = 2).pack(anchor=N)q3 = IntVar()Label(root, text="""Is the population mean known?""", justify = LEFT, padx = 20).pack(anchor=W)Radiobutton(root, text = """Yes""", padx = 20, variable=q3, value = 1).pack(anchor=N)Radiobutton(root, text = """No""", padx = 20, variable=q3, value = 2).pack(anchor=N)q4 = IntVar()Label(root, text="""Is the standard deviation of your data known?""", justify = LEFT, padx = 20).pack(anchor=W)Radiobutton(root, text = """Yes""", padx = 20, variable=q4, value = 1).pack(anchor=N)Radiobutton(root, text = """No""", padx = 20, variable=q4, value = 2).pack(anchor=N)q5 = IntVar()Label(root, text="""Do you wish to compare two groups?""", justify = LEFT, padx = 20).pack(anchor=W)Radiobutton(root, text = """Yes""", padx = 20, variable=q5, value = 1).pack(anchor=N)Radiobutton(root, text = """No""", padx = 20, variable=q5, value = 2).pack(anchor=N)q6 = IntVar()Label(root, text="""Do you want to compare two sample means?""", justify = LEFT, padx = 20).pack(anchor=W)Radiobutton(root, text = """Yes""", padx = 20, variable=q6, value = 1).pack(anchor=N)Radiobutton(root, text = """No""", padx = 20, variable=q6, value = 2).pack(anchor=N)q7 = IntVar()Label(root, text="""Is your data paired (E.g. before and after data)?""", justify = LEFT, padx = 20).pack(anchor=W)Radiobutton(root, text = """Yes""", padx = 20, variable=q7, value = 1).pack(anchor=N)Radiobutton(root, text = """No""", padx = 20, variable=q7, value = 2).pack(anchor=N)q8 = IntVar()Label(root, text="""Are you testing proportions?""", justify = LEFT, padx = 20).pack(anchor=W)Radiobutton(root, text = """Yes""", padx = 20, variable=q8, value = 1).pack(anchor=N)Radiobutton(root, text = """No""", padx = 20, variable=q8, value = 2).pack(anchor=N)q9 = IntVar()Label(root, text="""Do you wish to test for a difference between observed and expected data?""", justify = LEFT, padx = 20).pack(anchor=W)Radiobutton(root, text = """Yes""", padx = 20, variable=q9, value = 1).pack(anchor=N)Radiobutton(root, text = """No""", padx = 20, variable=q9, value = 2).pack(anchor=N)from tkFileDialog import askopenfilenamefrom tkMessageBox import showerrorButton(root,text = "Browse files", command = load_file, width = 10).pack()Button(root, text = "Submit", command=choose).pack()root.mainloop()