|
|||||||
Подсчет количества строк, слов и букв в текстовом файле
Время создания: 29.07.2019 23:51
Раздел: Разные закладки - Python - Перевод документации Python 3.x
Запись: xintrea/mytetra_db_adgaver_new/master/base/15159439210m7ss7h4nf/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Программа считает количество строк, слов и букв в переданном ей файле. Имя файла должно передаваться в качестве первого аргумента после имени самого скрипта. Например, вызов скрипта в Linux через командную оболочку выглядит примерно так: python3 words.py text.txt import sys
fname = sys.argv[1] lines = 0 words = 0 letters = 0
for line in open(fname): lines += 1 letters += len(line)
pos = 'out' for letter in line: if letter != ' ' and pos == 'out': words += 1 pos = 'in' elif letter == ' ': pos = 'out'
print("Lines:", lines) print("Words:", words) print("Letters:", letters) С комментариями: import sys
# argv - список аргументов командрой строки # argv[0] - имя самого файла-скрипта # argv[1] - первый аргумент, здесь - имя обрабатываемого файла fname = sys.argv[1]
# Переменные для подсчета строк, слов и букв. lines = 0 words = 0 letters = 0
# Функция open() открывает переданный ей файл # и возвращает объект, итерация по которому # позволяет последовательно извлекать строки файла. for line in open(fname): # Была получена очередная строка. # Она присваивается переменной line. # Счетчик строк следует увеличить на 1. lines += 1
# С помощью len определяется количество символов в строке # и добавляется к счетчику букв. letters += len(line)
# Код ниже считает количество слов в текущей строке.
# Флаг, сигнализирующий нахождение за пределами слова. pos = 'out'
# Цикл перебора строки по символам. for letter in line: # Если очередной символ не пробел, а флаг в значении "вне слова", # то значит начинается новое слово. if letter != ' ' and pos == 'out': # Поэтому надо увеличить счетчик слов на 1, words += 1 # а флаг поменять на значение "внутри слова". pos = 'in' # Если очередной символ пробел, elif letter == ' ': # то следует установить флаг в значение "вне слова". pos = 'out'
# Вывод количеств строк, слов и символов на экран. print("Lines:", lines) print("Words:", words) print("Letters:", letters) Пример выполнения скрипта в командной оболочке bash XXX@XXX:~/PycharmProjects/words$ python3 words_comment.py words.py Lines: 22 Words: 64 Letters: 385 |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|