I have been looking over Vegaseat's Word Count program. I have two thoughts about what I want to configure it to do, but I'm not sure how to go about it.


Idea 1; This is most important. I want users to be able to put a text file in the same folder as the program, then the user can input 'Random.txt' or whatever the name is, and the program does its thing.

Idea 2; I want to make a graphical interface. I guess it would be a system of check input and doing it.


JB

This would be the simplest way:

filename = raw_input("Enter the name of the textfile (eg. test.txt): ")

Using a file dialog window to get a filename can be as simple as this with Tkinter:

import tkFileDialog

filename = tkFileDialog.askopenfilename(filetypes=[("Text files","*.txt")])
print filename    # for testing

Just incorporate this within the snippet code and you are set.

Well I've decided to rewrite into a simpler version like this:

#!/usr/bin/python 
import sys 

import tkFileDialog

filename = tkFileDialog.askopenfilename(filetypes=[("Text files","*.txt")])
print filename    

try: 
    file = open(filename) 
except IOError, why: 
    print 'Unable to open file.\n', why 
    sys.exit(-1) 

charCount = lineCount = wordCount = 0 

for line in file.xreadlines(): 
    lineCount += 1 
    wordCount += len(line.split()) 
    charCount += len(line) 

print "Number of lines:"
print lineCount,
print "Number of Words:"
print wordCount,
print "Number of characters:"
print charCount

I have a few more questions:

1. I can't figure out for the life of me how to go about splitting the word count onto one line, character count on another etc. Does anyone know how? EDIT: Solved. Now it's perfect in that respect.

And 2. I want to try and write it so that it doesn't rely upon the python shell, but upon tkinter, like a window.

3. I want it to quit the tkinter window when done.

4. I want to package it into an executable.

If anyone can help it would be appreciated.

Edit: Added code tags vegaseat

Graphics User Interface (GUI) programming isn't too difficult in Python, but you have to get used to the typical window widgets like buttons, frames, labels, entries, grids and so on.

My initial advice to you:
Get very familiar with the rudimentary Python syntax before you tackle GUI programming.

If I find some time, I will post a typical Tkinter template containing a button to load the file and a set of labels to show the result.

I am trying to put the wordcount program into a callable function, WordCount(), but when I indent everything correctly, it gives me an error and highlights the rest of the line that def WordCount() is on as a problem.

your putting ':' after the def WordCount() line arn't you, simple i know, but just checking...

This question has already been answered. Start a new discussion instead.