рдкрд╛рдпрдерди рдЧрд╛рд░реНрдб рд╡реЙрд▓реЗрдЯ



рдПрдХ рдмрд╛рд░ рдореИрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдСрдкрд░реЗрдЯрд░ рдХреА рд╕рд╛рдЗрдЯ рдкрд░ рднрдЯрдХ рдЧрдпрд╛ред рдпрд╣ рд╣рд░ рд╕реНрд╡рд╛рдж рдФрд░ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдЯреИрд░рд┐рдл рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рдирд┐рдХрд▓рд╛ред рдпрд╣рд╛рдВ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рднреАрддрд░ рдХрдо рдЯреИрд░рд┐рдл рд╣реИ, рдХреЙрд▓ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдЯреИрд░рд┐рдлрд┐рдХреЗрд╢рди рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╢реБрд▓реНрдХ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдбреАрдЬреЗрдб рдорд╛рд░реНрдХреЗрдЯрд░реНрд╕ рдиреЗ рд╢рд╛рдирджрд╛рд░ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЕрдиреНрдп рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рд╕рд╛рдЗрдЯреЛрдВ рдкрд░, рддрд╕реНрд╡реАрд░ рд╕рдорд╛рди рдереАред рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЪрдпрдирд┐рдд рдЯреИрд░рд┐рдл рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореЗрд░реЗ рдореЛрдмрд╛рдЗрд▓ рдХрд╛ рдЦрд░реНрдЪ рдХрд┐рддрдирд╛ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдХреЗрд▓реЗ рд╡рд┐рдЪрд╛рд░ рдХреА рд╢рдХреНрддрд┐ рдкрд┐рдЫрд▓реЗ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдХреЙрд▓ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдФрд░ рд╕рднреА рдЯреИрд░рд┐рдл рдХреЗ рд╕рд╛рде рдЙрдирдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдереАред рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдмреЗрд╣рддрд░ рд╕рдордп рддрдХ рд╕реНрдердЧрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ Alt+Tab рджрдмрд╛рддрд╛ рд╣реВрдВ рдФрд░ рдареАрдХ - рдареАрдХ Python 2.7.5+ рдФрд░ рдПрдХ рдЖрдордВрддреНрд░рдг рдирд┐рдордВрддреНрд░рдг >>> рд╕рд╛рде рдХрдВрд╕реЛрд▓ рдореЗрдВ >>>

рдореИрдВ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рдХрд░ рджреВрдВрдЧрд╛ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдХреЗрд╡рд▓ 3 рдореБрдЦреНрдп рдореЛрдмрд╛рдЗрд▓ рдСрдкрд░реЗрдЯрд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрдХрд░реНрд╖рдХ рдЯреИрд░рд┐рдл рдпреЛрдЬрдирд╛рдУрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рдерд╛ред рд╡реЗ 10 рд╕реЗ рдЕрдзрд┐рдХ рдереЗ:


рдЕрдЧрд▓рд╛ рдХрджрдо рдкрд┐рдЫрд▓реЗ 3 рдорд╣реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдерд╛ред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╕реАрдзреЗ рд╕рд╛рдЗрдЯ рд╕реЗ рдЙрдкрд▓рдмреНрдз рдереА, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдзрдиреНрдпрд╡рд╛рджред рдкреАрдбреАрдПрдл рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ (рд╡реИрд╕реЗ, рдЗрд╕реЗ рдЕрдЬрдЧрд░ рдореЗрдВ рднреА рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ)ред рдкрд░рд┐рдгрд╛рдо рдмреБрд░рд╛ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдкрд╛рда рдореЗрдВ рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЯреИрдореВрд░рд╛рдЗрди рдХреЗ рд╕рд╛рде рдиреГрддреНрдп рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдбреЗрдЯрд╛ рдХреЛ рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рд╕реЗ рд╕реАрдзреЗ рдПрдХ рддреБрдЪреНрдЫ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд╣рдорд╛рд░реЗ рдЕрдЬрдЧрд░ рдХреЛ рдЦрд┐рд▓рд╛рдИ рдЧрдИ рдереА:

 #!/usr/bin/python import MySQLdb as mysql con = mysql.connect('localhost', 'mobile', 'mobile', 'mobile') cur = con.cursor() with open('calls.log') as f: for line in f: if 'MOC' in line: tokens = line.split() if len(tokens) == 11: cur.execute("INSERT INTO calls (operator, amount) VALUES('" + tokens[1] + "','" + tokens[6] + "')") con.commit() 

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдореИрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрд╕рдПрдордПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдЪрдпрди рдХреЗрд╡рд▓ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдХреЙрд▓ (рдореЛрдмрд╛рдЗрд▓-рдореВрд▓ рдХреЙрд▓, MOC) рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдЧреЗ рдХреА рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рд▓реЙрдЧ рдХреЛ MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рдерд╛ред

рдЖрдЧреЗ рдХреА рдЬреЛрдбрд╝рддреЛрдбрд╝

рдЕрдЧрд▓рд╛ рдХрджрдо рдХрд╛рдлреА рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИ - рдпрд╣ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЯреИрд░рд┐рдл рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗ рдУрд╡рд░рд╡рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдХрд┐рддрдирд╛ рдкреИрд╕рд╛ рдХрдорд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреЙрд▓ рдФрд░ рдЯреИрд░рд┐рдл рдкрд░ рдбреЗрдЯрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣реИред рдФрд░ рдлрд┐рд░ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдЬрдЧрд░ рдХреЛрдб:

 cur.execute("SELECT operator,plan,call_init,first_min_int,first_min_ext,min_int,min_ext FROM tariffs") rows = cur.fetchall() for row in rows: operator, plan, call_init, first_min_int, first_min_ext, min_int, min_ext = row #   cur.execute("SELECT COUNT(*) FROM calls") total = call_init*cur.fetchone()[0] #     cur.execute("SELECT COALESCE(SUM(LEAST(amount,60)),0) FROM calls WHERE operator='" + operator + "'") total += cur.fetchone()[0]/60*first_min_int #  ,     cur.execute("SELECT COALESCE(SUM(amount-60),0) FROM calls WHERE operator='" + operator + "' AND amount > 60") total += cur.fetchone()[0]/60*min_int #     cur.execute("SELECT COALESCE(SUM(LEAST(amount,60)),0) FROM calls WHERE operator<>'" + operator + "'") total += cur.fetchone()[0]/60*first_min_ext #  ,     cur.execute("SELECT COALESCE(SUM(amount-60),0) FROM calls WHERE operator<>'" + operator + "' AND amount > 60") total += cur.fetchone()[0]/60*min_ext print plan + " : " + str(round(total/100, 2)) + " .." 

рдпрд╣рд╛рдБ рдЙрддреНрдкрд╛рджрди рд╣реИ:

 Magti Standard : 47.1 ye Magti I Alternative : 56.5 ye Bani Standard : 29.72 ye Bani Zero+ : 26.67 ye Geocell 000 : 49.94 ye Geocell 1-10 : 35.86 ye Geocell 12 : 35.66 ye Beeline 007 : 37.69 ye Beeline Non Stop : 40.7 ye Bani Universal : 39.21 ye 

рдЖрд░реЗрдЦ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╛рди рдбреЗрдЯрд╛, рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП:


рдирд┐рд╖реНрдХрд░реНрд╖

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рд╣рдо рдЪрд░рдо рдореВрд▓реНрдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдЪрд╛рд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рд╕рд╣рд┐рдд рдорд╛рдирдХ рд╡рд┐рдЪрд▓рди рдХрд╛рдлреА рдЫреЛрдЯрд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдХрдо рд╕реЗ рдХрдо рд▓рд╛рднрджрд╛рдпрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рднрджрд╛рдпрдХ рдЯреИрд░рд┐рдл рдпреЛрдЬрдирд╛ рдЪреБрдирдиреЗ рдкрд░ 2 рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдмрдЪрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In211490/


All Articles