Я выполняю некоторые задачи обработки на среднем (1.7 Мб) Персидский текст corpus. Я хочу, чтобы сделать списки три набора символов в тексте:Python3: подсчет и извлечение букв из текста
- алфавитов
- белые пространства (включая символ новой строки, табуляция, пробел, не разорвать пространство и т.д.) и
- пунктуации. я писал:
# -*- coding: utf8 -*-
TextObj = open ('text.txt', 'r', encoding = 'UTF8')
import string
LCh = LSpc = LPunct = []
TotalCh = TotalPunct = TotalSpc = 0
TempSet = 'ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی'
#TempSet variable holds alphabets of Persian language.
ReadObj = TextObj.read()
for Char in ReadObj:
if Char in TempSet: #This's supposed to count & extract alphabets only.
TotalCh += 1
LCh.append (Char)
elif Char in string.punctuation: #This's supposed to count puncts.
TotalPunct += 1
LPunct.append (Char)
elif Char in ('', '\n', '\t'): #This counts & extracts spacey things.
TotalSpc += 1
LSpc.append (Char)
else: #This'll ignore anything else.
continue
Но когда я пытаюсь:
print (LPunct)
print (LSpc)
Я попробовал этот код на обоих Linux и Windows 7. На обоих из них, результат не то, что Я ожидал вообще. Списки пунктуации и пробела содержат как персидские буквы.
Другой вопрос:
Как я могу улучшить это состояние elif Char in ('', '\n', '\t'):
так, что она охватывает все виды космической семьи?
Любой новый код opf? – Vynylyn