File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ #! /usr/bin/env python3
2+ import argparse
3+ import sys
4+
5+ def get_args ():
6+ parser = argparse .ArgumentParser (
7+ prog = 'wc' ,
8+ description = 'Emulate wc (word count)' )
9+
10+ parser .add_argument ('file' ,
11+ metavar = 'FILE' ,
12+ type = argparse .FileType ('rt' ),
13+ default = [sys .stdin ],
14+ help = 'Input file(s)' ,
15+ nargs = '*' )
16+
17+ return parser .parse_args ()
18+
19+ def main ():
20+
21+ args = get_args ()
22+
23+ files = args .file
24+
25+ #print(type(files))
26+
27+ total_lines = 0
28+ total_words = 0
29+ total_bytes = 0
30+
31+ for fh in files :
32+ num_lines = 0
33+ num_words = 0
34+ num_bytes = 0
35+ for line in fh :
36+ num_lines += 1
37+
38+ #words = line.split()
39+ for word in line .split ():
40+ num_words += 1
41+
42+ num_bytes += len (line )
43+ total_lines += num_lines
44+ total_words += num_words
45+ total_bytes += num_bytes
46+
47+ print ('{:8}{:8}{:8} {}' .format (num_lines , num_words , num_bytes , fh .name ))
48+
49+ if len (files ) > 1 :
50+ print ('{:8}{:8}{:8} {}' .format (total_lines , total_words , total_bytes , 'total' ))
51+
52+ if __name__ == '__main__' :
53+ main ()
You can’t perform that action at this time.
0 commit comments