2013-05-07 9 views
5

मैं एक टिंकर प्रोग्राम बनाने की कोशिश कर रहा हूं जो अब तक एक फाइल खोल सकता है जिसमें एक टीके विंडो खुलती है जिसमें एक विकल्प होता है जो फ़ाइल को एक ड्रॉप-डाउन मेनू कहता है और जब आप इसे क्लिक करते हैं तो यह खुला होता है यह खुलता है एक फ़ाइल खिड़की, लेकिन मैं नहीं कर सकते यह पता लगाने कैसे वास्तव में उस फ़ाइलओपनिंग फ़ाइल (टिंकर)

यहाँ है कोड im कोशिश कर खोलने के लिए:

from Tkinter import * 
from tkFileDialog import askopenfilename 
def openfile(): 

    filename = askopenfilename(parent=root) 
    f = open(filename) 
    f.read() 

root = Tk() 
menubar = Menu(root) 
filemenu = Menu(menubar, tearoff=0) 
filemenu.add_command(label="Open", command=openfile) 
filemenu.add_separator() 
filemenu.add_command(label="Exit", command=root.quit) 
menubar.add_cascade(label="File", menu=filemenu) 

root.config(menu=menubar) 
root.mainloop() 

Here is what the window looks like

+1

इस कोड काम करता है, तो आप सिर्फ करने की जरूरत है 'वापसी f.read()' – Jared

+0

ठीक ओह ahahhaha खेद लेकिन कहो मैंने x = f.read किया है मैं इसे कैसे बना सकता हूं ताकि मैं फ़ंक्शन के बाहर कहीं और एक्स इनपुट कर सकूं क्षमा करें, मैं एक नौसिखिया हूँ – Serial

उत्तर

10

आप पहले से ही फ़ाइल खोली है, जब आप f = open(filename) किया था। फ़ाइल की सामग्री को कंसोल पर प्रिंट करने के लिए, आप print f.read() कर सकते हैं। या लाइन & द्वारा फ़ाइल लाइन के माध्यम से जाने की तरह

for line in f: 
    print line 

सामग्री मुद्रित यहाँ कैसे एक फ़ाइल खोलने और प्रिंट यह यूआई पर सामग्री है करने का एक उदाहरण है। मैं इस उदाहरण पाया सहायक हो और यह वास्तव में पता चलता है कि आप क्या चाहते:

from Tkinter import Frame, Tk, BOTH, Text, Menu, END 
import tkFileDialog 

class Example(Frame): 

    def __init__(self, parent): 
     Frame.__init__(self, parent) 

     self.parent = parent   
     self.initUI() 

    def initUI(self): 

     self.parent.title("File dialog") 
     self.pack(fill=BOTH, expand=1) 

     menubar = Menu(self.parent) 
     self.parent.config(menu=menubar) 

     fileMenu = Menu(menubar) 
     fileMenu.add_command(label="Open", command=self.onOpen) 
     menubar.add_cascade(label="File", menu=fileMenu)   

     self.txt = Text(self) 
     self.txt.pack(fill=BOTH, expand=1) 


    def onOpen(self): 

     ftypes = [('Python files', '*.py'), ('All files', '*')] 
     dlg = tkFileDialog.Open(self, filetypes = ftypes) 
     fl = dlg.show() 

     if fl != '': 
      text = self.readFile(fl) 
      self.txt.insert(END, text) 

    def readFile(self, filename): 

     f = open(filename, "r") 
     text = f.read() 
     return text 


def main(): 

    root = Tk() 
    ex = Example(root) 
    root.geometry("300x250+300+300") 
    root.mainloop() 


if __name__ == '__main__': 
    main() 

स्रोत: http://zetcode.com/gui/tkinter/dialogs/

संबंधित मुद्दे