Skip to content

Commit b06f19f

Browse files
committed
Merge pull request Show-Me-the-Code#170 from lwhhhh/master
add 17,20,21
2 parents d7844f5 + aa0530e commit b06f19f

File tree

12 files changed

+315
-0
lines changed

12 files changed

+315
-0
lines changed

lwh/12/demo.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
北京
2+
程序员
3+
公务员
4+
领导
5+
牛比
6+
牛逼
7+
你娘
8+
你妈
9+
love
10+
sex
11+
jiangge

lwh/12/filter.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import re
2+
import string
3+
4+
5+
class Filter(object):
6+
7+
def __init__(self):
8+
self.filtered_word_list = []
9+
self.readIO()
10+
11+
def check(self, word_input):
12+
res = word_input
13+
for e in self.filtered_word_list:
14+
# print(e)
15+
if e in word_input:
16+
res = res.replace(e, '*' * len(e))
17+
return res
18+
19+
def readIO(self):
20+
with open('demo.txt', 'r') as f:
21+
s_temp = f.readline().strip()
22+
while s_temp != "":
23+
self.filtered_word_list.append(s_temp)
24+
s_temp = f.readline().strip()
25+
26+
if __name__ == "__main__":
27+
filter_obj = Filter()
28+
while True:
29+
word_input = input("Enter a sentence to check >")
30+
str_ans = filter_obj.check(word_input)
31+
print(str_ans)

lwh/14/SaveToExcel.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
from openpyxl import Workbook
2+
from openpyxl import load_workbook
3+
4+
path_save = "/home/lwh/SublimeTextProject/test.xlsx"
5+
path_read = "/home/lwh/SublimeTextProject/demo.txt"
6+
7+
8+
def write_test():
9+
wb = Workbook() # 1.creat a work book
10+
wb_sheet0 = wb.create_sheet("student") # 2.create a sheet in the work book
11+
12+
datas_str = ""
13+
datas_dict = {}
14+
15+
with open(path_read, "r") as f:
16+
lines = f.readlines()
17+
18+
# process the data from txt file.I make it be a dict
19+
for line in lines:
20+
if len(line.strip()) > 1:
21+
key, value = line.split(':')
22+
key = key.strip().strip("\"")
23+
value = value.strip().strip(",").strip("[").strip("]")
24+
value_list = value.split(",")
25+
# print(len(value_list))
26+
datas_dict[key] = value_list
27+
28+
for i in range(1, 4): # 3.assign value to cell of the sheet
29+
for j in range(1, 5):
30+
cell = wb_sheet0.cell(row=i, column=j + 1)
31+
cell.value = datas_dict[str(i)][j - 1]
32+
# print(cell.value)
33+
cell = wb_sheet0.cell(row=i, column=1)
34+
cell.value = i
35+
'''
36+
for row in wb_sheet0.iter_rows():
37+
for cell in row:
38+
print(cell.value)
39+
'''
40+
wb.save(path_save) # 4.save the file
41+
print('success')
42+
43+
write_test()

lwh/14/demo.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"1":["张三",150,120,100],
3+
"2":["李四",90,99,95],
4+
"3":["王五",60,66,68]
5+
}

lwh/14/demo.txt~

Whitespace-only changes.

lwh/17/demo.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"1":["张三",150,120,100],
3+
"2":["李四",90,99,95],
4+
"3":["王五",60,66,68]
5+
}

lwh/17/test.xlsx

5.48 KB
Binary file not shown.

lwh/17/xlxs_to_xml.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
from xml.etree.ElementTree import ElementTree, Element, SubElement, Comment
2+
from openpyxl import load_workbook
3+
import json
4+
from pprint import pprint
5+
6+
7+
class ExcelToXml(object):
8+
9+
def __init__(self):
10+
self.path_save = '/home/lwh/SublimeTextProject/test.xml'
11+
self.path_read = '/home/lwh/SublimeTextProject/test.xlsx'
12+
self.excel_dict = self.get_excel_dict()
13+
self.data = self.get_text(self.excel_dict)
14+
self.xml_final = self.get_xml(self.data)
15+
self.save_xml(self.xml_final)
16+
17+
def get_excel_dict(self):
18+
wb = load_workbook(self.path_read)
19+
wb_sheet_student = wb['student']
20+
excel_dict = {}
21+
for row in wb_sheet_student.iter_rows():
22+
key = str(row[0].value).strip()
23+
value_list = row[1:]
24+
value = [ele.value for ele in value_list]
25+
excel_dict[key] = str(value)
26+
return excel_dict
27+
28+
def get_text(self, excel_dict):
29+
res = '{\r\n'
30+
for key, val in excel_dict.items():
31+
res += ' ' + str(key) + ':' + val + '\n'
32+
res += '}\n'
33+
# print(res)
34+
return res
35+
36+
def get_xml(self, data):
37+
root = Element('root')
38+
student = SubElement(root, 'students')
39+
student.append(Comment('学生信息表 "id" : [名字, 数学, 语文, 英文]'))
40+
# student.
41+
print(data)
42+
student.text = data
43+
xml_final = ElementTree(root)
44+
# print(xml_final)
45+
return xml_final
46+
47+
def save_xml(self, xml_to_save):
48+
xml_to_save.write(
49+
self.path_save, encoding="us-ascii", default_namespace=None, short_empty_elements=True)
50+
51+
52+
if __name__ == '__main__':
53+
excel_to_xml_obj = ExcelToXml()

lwh/20/CallInfo.xls

23.5 KB
Binary file not shown.

lwh/20/callinfo.py

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
import xlrd
2+
import xlwt
3+
4+
5+
class Statistics(object):
6+
7+
def __init__(self, user):
8+
self.path_read = '/home/lwh/SublimeTextProject/CallInfo.xls'
9+
self.path_save = '/home/lwh/SublimeTextProject/CallInfo(1).xls'
10+
self.user = user
11+
self.work()
12+
13+
# change all format of time to second
14+
def tran_time(self, time_str):
15+
time = time_str.replace('分', '.').replace('秒', '')
16+
temp = time.split('.')
17+
if len(temp) == 1: # just second
18+
time = int(temp[0])
19+
# print(time)
20+
elif len(temp) == 2: # minute and second
21+
m = int(temp[0]) * 60
22+
s = int(temp[1])
23+
time = m + s
24+
# print(time)
25+
return time
26+
27+
def work(self):
28+
wb = xlrd.open_workbook(self.path_read)
29+
sheets_list = wb.sheet_names()
30+
for sheet_name in sheets_list:
31+
wb_sheet = wb.sheet_by_name(sheet_name)
32+
# print(wb_sheet)
33+
# print(wb_sheet.nrows)
34+
# print(wb_sheet.ncols)
35+
# print(wb_sheet.cell_value(3,8))
36+
for i in range(1, wb_sheet.nrows):
37+
row = wb_sheet.row(i)
38+
39+
# time
40+
time_str = row[3].value
41+
time = self.tran_time(time_str)
42+
self.user.total_time += time
43+
44+
# calling info
45+
in_or_out = row[4].value
46+
if in_or_out == '被叫':
47+
number_in = row[5].value
48+
if number_in not in self.user.number_in_dict:
49+
self.user.number_in_dict[number_in] = 0
50+
else:
51+
self.user.number_in_dict[number_in] += 1
52+
elif in_or_out == '主叫':
53+
number_out = row[5].value
54+
if number_out not in self.user.number_out_dict:
55+
self.user.number_out_dict[number_out] = 0
56+
else:
57+
self.user.number_out_dict[number_out] += 1
58+
for key, val in self.user.number_in_dict.items():
59+
print('in', key, val)
60+
for key, val in self.user.number_out_dict.items():
61+
print('out', key, val)
62+
# print(self.user.total_time)
63+
64+
65+
class User():
66+
67+
def __init__(self, name, num):
68+
self.name = name
69+
self.num = num
70+
self.total_time = 0
71+
self.most_call_out = ''
72+
self.most_call_in = ''
73+
self.number_in_dict = {}
74+
self.number_out_dict = {}
75+
76+
77+
if __name__ == '__main__':
78+
user0 = User('lwh', '13257584928')
79+
analyzer_obj0 = Statistics(user0)
80+
print('success.')
81+

0 commit comments

Comments
 (0)