我正在打開文本文件,顯示該文件中的字符總數,然後對每個字符(字母,數字,標點符號等)進行分類。我的範圍是從32-127的ASCII表格,出於某種原因,字符數似乎超過了我在網上查到字符數時所看到的數字。Python字符數不準確?
def totalLength():
inFile = open("draft_UTF-8.txt", 'r', encoding = 'ISO-8859-1')
readFile = inFile.read()
print("Total amount of characters with spaces included:", len(readFile))
inFile.close()
除此之外,每當我歸類我的文件,我的節目顯示,有人物了ASCII的範圍,儘管我沒有把ASCII範圍之外的任何字符。 這是我組織的代碼。
inFile = open("draft_UTF-8.txt", 'r', encoding = 'ISO-8859-1')
readFile = inFile.read()
alpha = 0
num = 0
space = 0
special = 0
other = 0
for lines in readFile:
for ch in lines:
if ch in string.ascii_letters:
alpha += 1
elif ch in string.digits:
num += 1
elif ch == ' ':
space += 1
elif ch in string.punctuation:
special += 1
else:
other += 1
然後我會打印每個類別。在我的文本文件,我有以下:
1234567890
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
~`[email protected]#$%^&*()_-++|\}]{[「’:;?/>.<,
輸出將是:
Total amount of characters with spaces included: 101
There are 52 occurrences of alphabetical characters.
There are 10 occurrences of numerical characters.
There are 0 occurrences of white spaces.
There are 30 occurrences of punctuation characters.
there are 9 occurrences of other characters.
我想通了,其他的角色出現,從標點符號來了,但不知道哪一個。有什麼建議麼?
編輯:我想通過我的輸出獲得額外字符的原因是因爲編碼:ISO-8859-1。我的主要問題是,除非我使用這種編碼,否則Python不會運行我的程序,主要是因爲我使用的是MAC OS。它在PyCharm上沒有它,但是在Python上,我的程序會崩潰。
行將以換行符結束。你考慮過了嗎?此外,要遍歷行,您應該使用'readlines()'方法。 – 2015-04-02 14:47:20
我不明白你看到了什麼問題。 – interjay 2015-04-02 14:54:21
我的總字符數已經減少了一些,而當文本文件較大時,總字符數已經減少了數百。另外,在我的文本文件中,沒有「其他」字符,但我的程序輸出顯示有。 – Zyanaster 2015-04-02 14:55:45