テキスト ファイルを読み取り、行数、単語数、文字数をカウントするプログラムを作成する必要がありました。個別に区切られている場合はすべて以下で機能しますが、ファイルを一度読み取れるように関数を使用するように変換したかったのですが、さまざまな回答が得られ続け、何が間違っているのかわかりません。
単語コード
print ' '
fname = "question2.txt"
infile = open ( fname, 'r' )
fcontents = infile.read()
words = fcontents.split()
cwords = len(words)
print "Words: ",cwords
文字コード
fname = "question2.txt"
infile = open ( fname, 'r' )
fcontents = infile.read()
char = len(fcontents)
print "Characters: ", char
回線コード
fname = "question2.txt"
infile = open ( fname, 'r' )
fcontents = infile.readlines()
lines = len(fcontents)
print "Lines: ", lines
正しい結果
単語: 87
文字: 559
行: 12
これは、関数を使用しようとしているときに思いついたものですが、何が問題なのかわかりません。
def filereader():
fname = 'question2.txt'
infile = open ( fname, 'r' )
fcontents = infile.read()
fcontents2 = infile.readlines()
return fname, infile, fcontents, fcontents2
def wordcount(fcontents):
words = fcontents.split(fcontents)
cwords = len(words)
return cwords
def charcount(fcontents):
char = len(fcontents)
return char
def linecount(fcontents2):
lines = len(fcontents2)
return lines
def main():
print "Words: ", wordcount ('cwords')
print "Character: ", charcount ('char')
print "Lines: ", linecount ('lines')
main()
間違った結果
単語: 2
文字: 4
行: 5