Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GUI python浏览要打开和运行的文件_Python - Fatal编程技术网

使用GUI python浏览要打开和运行的文件

使用GUI python浏览要打开和运行的文件,python,Python,嗨,我有一些python脚本。我需要创建一个带有几个按钮的GUI,通过浏览打开这些文件。我必须通过单击GUI按钮来运行这些脚本,并且应该将输出写入n excel工作表。我尝试了下面的代码,但有了它我就可以读取文件了!请帮忙? 多谢各位 from Tkinter import * from tkFileDialog import askopenfilename def callback(): r = open(askopenfilename(),

嗨,我有一些python脚本。我需要创建一个带有几个按钮的GUI,通过浏览打开这些文件。我必须通过单击GUI按钮来运行这些脚本,并且应该将输出写入n excel工作表。我尝试了下面的代码,但有了它我就可以读取文件了!请帮忙? 多谢各位

from Tkinter import *            
from tkFileDialog   
import askopenfilename      

def callback():
    r = open(askopenfilename(),'r')

a = Button(text='click me', command=callback)
a.pack()

mainloop()

下面的代码是一个简单的示例,它从选定的输入文件中读取每一行,然后将其写入名为output.xls的新excel文件。它使用优秀的工具创建excel文件。您还可以选择使用模块创建csv文件,该模块是python标准库的一部分,excel也可以读取该库。使用xlwt的优点是,您可以应用格式化、合并单元格、公式以及作为xls文件格式一部分的许多其他功能

import xlwt
from Tkinter import *            
from tkFileDialog   import askopenfilename      

def callback():
    filename = askopenfilename()
    wb = xlwt.Workbook()
    ws0 = wb.add_sheet('Sheet1')
    with open(filename, 'r') as f:
        for i, line in enumerate(f):
            ws0.write(i, 0, line.strip())
    wb.save('output.xls')

errmsg = 'Error!'
a = Button(text='click me', command=callback)
a.pack()
mainloop()
在callback()内部,使用execfile(“abc.py”)执行文件,而不是打开文件


将动作绑定到按钮Marwan感谢您提供有价值的建议来尝试xlvt!但我的问题实际上是运行脚本。是的,我可以阅读文件,甚至打印所有的行。运行时出现错误“Line\u Read=linecache.getline(文件名,循环计数器)Name错误:未定义全局名称“linecache”,并且linecache已导入。如果您对此错误有任何想法,请提供帮助您的python安装可能有问题。你的代码运行得很好,没有错误。尝试并重新安装python,同时在另一台计算机上尝试您的代码作为测试。虽然此代码可能会回答问题,但提供有关如何和/或为什么解决问题的其他上下文将提高答案的长期价值。@DonaldDuck是的,现在检查我编辑的代码。选择文件的代码和选择目录的代码。
def callback():
    abc = askopenfilename()
    execfile("abc.py")
        import Tkinter, tkFileDialog
        root = Tkinter.Tk()
        root.withdraw()
        dirname=tkFileDialog.askdirectory(parent=root,initialdir="/",title='Please select a directory')
        do something with dirname
        print dirname

#This code for file selection:

    from Tkinter import Tk
    from tkFileDialog import askopenfilename

    Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing

    filename = askopenfilename() # show an "Open" dialog box and return the path to the selected file
    print(filename)