2014-03-30 177 views
0

我正在用Python編寫一個程序來計算文件中的頻繁字符。它計數的字符由用戶決定。我不斷收到這個消息,我一直在努力最長用無濟於事弄明白:Python說:AttributeError:'_io.TextIOWrapper'對象沒有屬性'

filename = open('all-Names.txt', 'r') 
character = input("Enter character: ") 
x = filename.count(character) 
print(x) 
filename.close() 
+0

我想我的朋友,這是非常明顯的是,這裏沒有TextIOWrapper存在,或者至少是一個計數方法配置不正確。實際上我認爲你不應該把字符變量傳遞給count方法 – CodeArtist

+2

正如孔子所說:「如果名字不正確,語言不符合事物的真相,如果語言不符合事實真相事情,事情不能成功。「換句話說:如果不是文件名,不要調用'filename'。 – DSM

回答

1

有一個文件對象上沒有count()方法。你應該遍歷文件行和總結計數每行:

character = input("Enter character: ") 

with open('all-Names.txt', 'r') as f: 
    print(sum(line.count(character) for line in f)) 

演示:

$ cat all-Names.txt 
test 
test2 
test3 
test4 
test5 
$ python 
... 
>>> character = input("Enter character: ") 
Enter character: t 
>>> with open('all-Names.txt', 'r') as f: 
... print(sum(line.count(character) for line in f)) 
... 
10 
+0

啊我明白了..謝謝! – user2345170

+0

@ user2345170歡迎您,考慮[接受答案](http://meta.stackexchange.com/a/5235/219368),如果您認爲它值得,謝謝。 – alecxe

相關問題