2015-10-27 2 views
0

В настоящее время я борюсь с вопросом, связанным с файловым I/O-файлом Python. Вопрос, который я, что я не в состоянии быть в состоянии выполнить это:Напишите функцию, чтобы взять текстовый файл и напечатать количество строк, слов и символов в файле

Write a function stats() that takes one input argument: the 
name of a text file. The function should print, on the screen, the 
number of lines, words, and characters in the file; your function 
should open the file only once. 

Я должен также устранить все пунктуация, чтобы правильно получить все функции words.The должен печатать следующим образом:

>>>stats('example.txt') 
line count: 3 
word count: 20 
character count: 98 
+0

Что вы до сих пор? Пожалуйста, добавьте свой код до сих пор с вашим вопросом, мы здесь не для того, чтобы выполнить весь ваш вопрос о задании/домашнем задании для вас. – metatoaster

+0

Самый дальний из них, который я получил, открывает текстовый файл на python, я только что закончил четырехчасовую сессию преподавателя, которая стоила больших денег, поскольку я не понимал почасовой ставки, но репетитор не смог помочь мне начать вообще , Я также не смог придумать какой-либо способ решить этот вопрос. –

+0

Вы даже поняли, как ['читать'] (https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files) из открытого файлового объекта? Также читайте документацию по типу и методам ['str'] (https://docs.python.org/3/library/string.html), которые она имеет, например, [' splitlines'] (https: // docs. python.org/3/library/stdtypes.html#str.splitlines)?Поскольку вы считаете, что хотите использовать ['len'] (https://docs.python.org/3/library/functions.html#len), тоже. – metatoaster

ответ

1

Насколько идет ваш вопрос, вы можете достичь его:

fname = "inputfile.txt" 
num_lines = 0 
num_words = 0 
num_chars = 0 
with open(fname, 'r') as f: 
    for line in f: 
     words = line.split() 
     num_lines += 1 
     num_words += len(words) 
     num_chars += len(line) 

Есть много бесплатный учебник онлайн для питона. Пожалуйста, проконсультируйтесь с ними. Вы можете найти справочники here

1

Пожалуйста, ознакомьтесь с документацией Python о I/O here, встроенные функции here и общих string операций here.

Существует много способов сделать это. С быстрым переходом на это, следующая работа должна быть выполнена на основе ваших требований. Функция split устраняет пробелы, когда она преобразует каждую строку в list.

def GetFileCounts(in_file): 
    char_count = 0 
    word_count = 0 
    line_count = 0 
    with open(in_file) as read_file: 
     for line in read_file: 
      line_count += 1 
      char_count += len(line) 
      word_count += len(line.split(' ')) 
    print "line count: {0}\nword count: {1}\ncharacter count: {2}".format(line_count, word_count, char_count) 

Вы можете уточнить ваши требования Defintion немного больше, поскольку есть некоторые тонкие вещи, которые могут изменить вывод:

  • Что такое ваше определение характера?
    • только буквы?
    • буквы, пробелы, знаки препинания слов (например, дефисы), конец строк и т. Д.?
0

@nagato, я думаю Yout с num_chars + = Len (строка) вы пришли все из файла, персонажа и пробел, но спасибо за ваш код, я могу мой делать .. .

Мой ...

def char_freq_table(): 
    with open('/home/.....', 'r') as f: 
    line = 0 
    word = 0 
    character = 0 
    for i in f: 
    line = len(list('f')) 
    word += len(i.split()) 
    character = i.replace(" ", "") #lose the blank space 
    print "line count: ", line 
    print "word count: ", word 
    print "character count: ", len(character) # length all character 

char_freq_table()