我想爲文件取路徑,打開文件並讀取其中的數據。在此過程中,我想要統計字母表中每個字母的出現次數。嘗試除了在Python中
我讀過的和聽到的,使用try/except在這裏最好。我在這方面盡了最大的努力,但我只能計算出程序中字符串出現的位置,而不是文件內出現的位置。
我還沒有線索現在怎麼做到這一點,我的大腦已經開始傷害....這是我到目前爲止有:
import sys
print "Enter the file path:"
thefile = raw_input()
f = open(thefile, "r")
chars = {}
for c in f:
try:
chars[c]+=1
except:
chars[c]=1
print chars
任何幫助將得到高度讚賞。謝謝。
編輯:我忘了說,我在一分鐘得到的結果說,整個文件是一個字符。該文件由「abcdefghijklmnopqrstuvwxyz」組成,結果輸出爲:{'「abcdefghijklmnopqrstuvwxyz」\ n':1},它不應該是。
謝謝大家的快速回復。 Nicholas,謝謝。它確實有效。 :) 即使沒有任何事件發生,我將如何去顯示所有出現的字母表的統計信息?例如,如果文件中包含文本「你好,你好嗎?」,我希望它顯示字母b出現0次,等等。 啊,setdefault方法和defaultdict類型能解決這個問題嗎? – Emlyn 2011-04-20 01:01:31
不行,但你可以這樣做:'from string import ascii_letters; for ascii_letters中的字母:chars [letter] = 0'。這會給你A-Z,A-Z。 – 2011-04-20 01:04:03
@埃姆林:尼古拉斯說了些什麼。但更簡單的方法來做同樣的事情是'chars = dict(zip(ascii_letters,[0] * len(ascii_letters)))'就像我在我更新的答案中顯示的那樣。 – 2011-04-20 01:08:13