#!/usr/bin/env python # # -- wc.py -- # # Count lines, words, and characters in a file. # # Note that this 'wc' file was made executable with # $ chmod +x wc.py # # With this text in plain.txt : # # This is a file full of text. # At least, I *think* that it is. # What do you think? Yes? No? # # Running it looks like this : # $ ./wc.py plain.txt # file : plain.txt # lines : 3 # words : 20 # letters : 91 # # The filename is taken from the command line with the sys.argv list. # For example, if this program were just # # import sys # print sys.argv # # Then running it like this # # $ ./wc.py some stuff # # would print this: # # ['wc.py', 'some', 'stuff'] # # # Jim Mahoney, Sep 2012, GPL import sys filename = sys.argv[1] # sys.argv is e.g. ['wc', 'file.txt'] file = open(filename, 'r') lines = file.readlines() # = ['first line\n', 'second line\n'] count_lines = len(lines) # len() is the length function. count_words = 0 count_letters = 0 for line in lines: count_letters = count_letters + len(line) count_words = count_words + len(line.split()) # split line at spaces print " file : %s " % filename print " lines : %i " % count_lines print " words : %i " % count_words print " letters : %i " % count_letters