DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Python (http://www.daniweb.com/forums/forum114.html)
-   -   Help (http://www.daniweb.com/forums/thread41818.html)

JoshBebbington Mar 25th, 2006 7:51 am
Help
 
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

vegaseat Mar 25th, 2006 9:20 am
Re: Help
 
Which code snippet are you thinking of?

Wordcount of a text file (Python)
http://www.daniweb.com/code/snippet238.html
or
Word Frequency in a Text String (Python)
http://www.daniweb.com/code/snippet374.html

JoshBebbington Mar 25th, 2006 10:56 am
Re: Help
 
I'm on about Wordcount of a text file (python)

Snippet 238.

Hope ya can help meh!

vegaseat Mar 25th, 2006 8:39 pm
Re: Help
 
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.

JoshBebbington Mar 26th, 2006 6:35 am
Re: Help
 
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

vegaseat Mar 26th, 2006 10:28 am
Re: Help
 
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.

JoshBebbington Mar 28th, 2006 3:54 pm
Re: Help
 
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.

a1eio Mar 29th, 2006 8:03 am
Re: Help
 
your putting ':' after the def WordCount() line arn't you, simple i know, but just checking...


All times are GMT -4. The time now is 3:36 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC