我是Python新手,正在研究一個計算簡單文本文件中單詞實例的程序。程序和文本文件將從命令行讀取,因此我已將其包含到我的編程語法中以檢查命令行參數。代碼如下Python - 計算文本文件中的單詞
import sys
count={}
with open(sys.argv[1],'r') as f:
for line in f:
for word in line.split():
if word not in count:
count[word] = 1
else:
count[word] += 1
print(word,count[word])
file.close()
count是一個字典,用於存儲單詞和它們發生的次數。我希望能夠打印出每個單詞及其出現的次數,從大多數出現到最小出現次數。
我想知道我是否在正確的軌道上,如果我正確使用sys。謝謝!!
看起來不錯,合理Pythonic。儘管在每一行結尾處理換行符,最後一個字符將是'\ n',這會弄亂你的計數。你會希望在行[: - 1] .split():'或其他東西中使用'。 – 2014-09-11 03:05:56
@Gaz Davidson:'line.split()'將清理所有的空白。 – 2014-09-11 03:30:56
你可能會喜歡使用re.findall(r'\ w +',...)將事物分成單詞,因爲它不僅僅作爲分隔符來填充空格......查看[python docs中的這個例子](https:/ /docs.python.org/2/library/collections.html#counter-objects) – reteptilian 2015-11-04 20:03:17