Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """see https://robotwhale.wordpress.com/2014/06/16/30-days-of-python-day-9-unix-tools-for-desert-island-coding-ii/
- """
- def wc(path, lines=True, words=True, chars=True, bytes_=True):
- """Prints the line, word, char, and byte counts of a file"""
- operations = ((lines, lambda _: 1),
- (words, lambda line: len(line.split())),
- (chars, len),
- (bytes_, len),
- )
- used_ops = [operation for used, operation in operations if used]
- sums = [0] * len(used_ops)
- with open(path,'r') as f_in:
- for line in f_in:
- for index, operation in enumerate(used_ops):
- sums[index] += operation(line)
- counts = [str(cnt) for cnt in sums]
- max_len = max([len(cnt) for cnt in counts])
- justified = [cnt.rjust(max_len) for cnt in counts]
- print str.join(' ', justified), path
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement