when I wont to inser (anyting I print) to the textbox it will not inser
it just print then hanging

# a look at the Tkinter Text widget

# use ctrl+c to copy, ctrl+x to cut selected text,

# ctrl+v to paste, and ctrl+/ to select all
  # count words in a text and show the first ten items
# by decreasing frequency

import Tkinter as tk
import os, glob
import sys
import string
import re
import tkFileDialog      
def most_frequant_word():    
browser= tkFileDialog.askdirectory()
#browser= os.listdir(a)


for root, dirs, files in os.walk(browser):
    print 'Looking into %s' % root.split('\\')[-1]
    print 'Found %d dirs and %d files' % (len(dirs), len(files))
    #text1.insert(tk.INSERT,'Looking into %s' % root.split('\\')[-1])
    #text1.insert(tk.INSERT, 'Found %d dirs and %d files' % (len(dirs), len(files)))
    for idx, file in enumerate(files):
     print 'File #%d: %s' % (idx + 1, file)
      #text1.insert(tk.INSERT, 'File #%d: %s' % (idx + 1, file))
     ff = open (os.path.join(root, file), "r")
     text = ff.read ( )
     ff.close ( )
     word_freq = {}
     
     word_list = text.strip().split()
     
     for word in word_list:
      word = word.lower().rstrip('.,/"-_;\\[]()')

      if word.isalpha():
                # build the dictionary
       count = word_freq.get(word, 0)
       word_freq[word] = count + 1

       # create a list of (freq, word) tuples
       freq_list = [(freq, word) for word, freq in word_freq.items()]
     
       # sort the list by the first element in each tuple (default)
       freq_list.sort(reverse=True)
    
     for n, tup in enumerate(freq_list):
    # print the first ten items
      if n < 50:
        print "%s times: %s" % tup
        text1.insert(tk.INSERT, freq)
        text1.insert(tk.INSERT, word)
        text1.insert(tk.INSERT, "\n")
        
raw_input('\nHit enter to exit')

root = tk.Tk(className = " most_frequant_word")
# text entry field, width=width chars, height=lines text
v1 = tk.StringVar()
text1 = tk.Text(root, width=50, height=20, bg='green')
text1.pack()
# function listed in command will be executed on button click
button1 = tk.Button(root, text='Brows', command=most_frequant_word)
button1.pack(pady=5)
text1.focus()
root.mainloop()

code try to insert to the textbox

print "%s times: %s" % tup
        text1.insert(tk.INSERT, freq)
        text1.insert(tk.INSERT, word)
        text1.insert(tk.INSERT, "\n")

when I wont to insert file name and directory to the textbox it will hang also
code is comment

print 'Looking into %s' % root.split('\\')[-1]
    print 'Found %d dirs and %d files' % (len(dirs), len(files))
    #text1.insert(tk.INSERT,'Looking into %s' % root.split('\\')[-1])
    #text1.insert(tk.INSERT, 'Found %d dirs and %d files' % (len(dirs), len(files)))
    for idx, file in enumerate(files):
     print 'File #%d: %s' % (idx + 1, file)
      #text1.insert(tk.INSERT, 'File #%d: %s' % (idx + 1, file))

I'm surprised that it hangs rather than giving an error message. Your code references text1 before text1 is ever defined.

I recommend this procedure for debugging:

First, write a small program that simply creates a text widget and writes something to it.

Then, transfer what you've learned back to this program.

Jeff

This article has been dead for over six months. Start a new discussion instead.