40 lines
781 B
Python
40 lines
781 B
Python
|
#!/usr/bin/env python
|
||
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
"""
|
||
|
Implementacja narzedzia ``wc`` z linuksa (word counter).
|
||
|
Zwraca liczbę słów, znaków i linii.
|
||
|
"""
|
||
|
|
||
|
import sys
|
||
|
|
||
|
|
||
|
def count_lines(text):
|
||
|
""" return number of lines. """
|
||
|
return len(text.strip().split('\n'))
|
||
|
|
||
|
def count_words(text):
|
||
|
""" return number of words. """
|
||
|
return sum([len([1 for word in line.split(' ') if len(word)])
|
||
|
for line in text.split('\n')])
|
||
|
|
||
|
def count_chars(text):
|
||
|
""" return number of words. """
|
||
|
return len(text)
|
||
|
|
||
|
def wc(text):
|
||
|
""" proper wc """
|
||
|
lines = count_lines(text)
|
||
|
words = count_words(text)
|
||
|
chars = count_chars(text)
|
||
|
return lines, words, chars
|
||
|
|
||
|
|
||
|
def main():
|
||
|
""" main """
|
||
|
print(wc(sys.stdin.read()))
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|