This repository was archived by the owner on Feb 26, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathex_functions.py
More file actions
71 lines (59 loc) · 2.77 KB
/
ex_functions.py
File metadata and controls
71 lines (59 loc) · 2.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import re
from collections import Counter # подсчёт встречаемости слов
import _operator
from datetime import datetime
# Регулярные выражения - это очень мощная сила.
# Но с великой силой приходит и великая ответственность. (с)
# Для имён вроде "recordXXX.txt" довольно простая регулярка:
# record\d+\.txt
pattern = r"\d+"
def sorting(key):
return int(re.search(pattern, key).group())
class tagsProcessing():
def __init__(self):
f = open("files/tags.txt", "r")
self.tags = f.read()
f.close()
self.tags = self.tags.split("\n")
self.n_tags = []
for i in self.tags:
self.n_tags.extend(i.split(","))
self.n_tags = list(map(lambda x: x.strip().lower(), self.n_tags))
while self.n_tags.count("@") > 0:
self.n_tags.remove("@")
while self.n_tags.count("") > 0:
self.n_tags.remove("")
self.s_tags = Counter(self.n_tags)
def printTags(self):
s_arr = []
self.sortedTags = []
si_tags = list(self.s_tags.items())
si_tags.sort(key=_operator.itemgetter(1))
si_tags.reverse()
for i in si_tags:
s_arr.append("{0} ({1})".format(i[0], i[1]))
self.sortedTags.append(i[0])
return s_arr
def selectPosts(self, nums):
# примеры: 12; запись12, 12; 12, 11efe; 1111, 12, thewor. Надо найти 12.
self.selectedPostsNumber = set()
for i in nums: # Держится на честном слове. Руками не трогать!
t = self.sortedTags[i]
pattern = r"\b%s\b" % t # \b - граница слова
for tag in self.tags:
c = re.search(pattern, tag)
if c != None:
self.selectedPostsNumber.add(self.tags.index(tag))
return self.selectedPostsNumber
# self.tags - теги одной записи группируются под одной строкой,
# self.n_tags - теги (не уникальные) расположены отдельно в массиве,
# self.s_tags - словарь встречаемости тегов
# self.sortedTags - отсортированные теги
def getNowTime():
return datetime.today().strftime("%d.%m.%Y, %H:%M")
if __name__ == '__main__':
#print(re.search(pattern, "record22.txt").group())
#print(re.search(pattern, "record1.txt").group())
#tagsProcessing()
#months = {January: "Январь", February: "Февраль", March: "Март", April: "Апрель", May: "Май"}
pass