Ibd рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рдЗрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд░рдЪрдирд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд┐рдирд╛ XtraDB рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐

рдЫрд╡рд┐


рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕


рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рд░реИрдВрд╕рдорд╡реЗрдпрд░ рд╡рд╛рдпрд░рд╕ рдиреЗ рд╣рдорд▓рд╛ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдПрдХ "рдлреНрд▓реВрдХ" рджреНрд╡рд╛рд░рд╛, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ .ibd рдлрд╝рд╛рдЗрд▓реЛрдВ (рдЗрдиреЛрдбрдм рдЯреЗрдмрд▓ рдХреА рдХрдЪреНрдЪреА рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ) рдХреЛ рдЕрд▓рдЧ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди .fpm рдлрд╝рд╛рдЗрд▓реЛрдВ (рд╕рдВрд░рдЪрдирд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ) рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЙрд╕реА рд╕рдордп .idb рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


  • рдорд╛рдирдХ рдЙрдкрдХрд░рдг рдФрд░ рдЧрд╛рдЗрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╕реВрд▓реА рдХреЗ рдЕрдзреАрдиред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рдорд╣рд╛рди рд▓реЗрдЦ рд╣реИ ;
  • рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдЯреЗрдмрд▓ред рдЕрдзрд┐рдХрддрд░ рдпреЗ рдмрдбрд╝реЗ рдЯреЗрдмрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рди рдкрд░ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╕рдордЭрд╛), рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЗ рдкрд╛рд╕ рдкреВрд░реНрдг рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд░реИрдо рдирд╣реАрдВ рдереА;
  • рдареАрдХ рд╣реИ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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


рдЫрд╡рд┐


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЖрдк рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ 0-рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╛рдпрд░рд╕ рдЬреЛ рдмреНрд▓реЙрдХ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо (рд╕рдмрд╕реЗ рдЖрдо) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдорддреМрд░ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдЫрд╡рд┐


рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдиреЗ 4 рдмрд╛рдЗрдЯреНрд╕ (1, 0, 0, 0) рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЫреЛрдбрд╝ рджреА, рдЬрд┐рд╕рд╕реЗ рдХрд╛рд░реНрдп рд╕рд░рд▓ рд╣реЛ рдЧрдпрд╛ред рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдзреВрд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдереА:


def opened(path): files = os.listdir(path) for f in files: if os.path.isfile(path + f): yield path + f for full_path in opened("C:\\some\\path"): file = open(full_path, "rb") last_string = "" for line in file: last_string = line file.close() if (last_string[len(last_string) -4:len(last_string)]) != (1, 0, 0, 0): print(full_path) 

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ рдкрд╣рд▓реА рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд▓рд╛ред рджреВрд╕рд░рд╛ рдПрдХ рд▓рдВрдмреЗ рдореИрдиреБрдЕрд▓ рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред рд╕рдмрдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдЯреАрдХ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ) рдПрдХ рдРрд╕рд╛ рдорд╛рдорд▓рд╛ рдерд╛ рдХрд┐ рдореБрдЭреЗ рдмрд╛рд░-рдмрд╛рд░ рдмрджрд▓рддреА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдХрд┐рд╕реА рдХреЛ рдпрд╛рдж рдирд╣реАрдВ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрджрд╛рди рдХрд╛ рдкреНрд░рдХрд╛рд░ рдмрджрд▓ рд░рд╣рд╛ рдерд╛, рдпрд╛ рдПрдХ рдирдпрд╛ рд╕реНрддрдВрдн рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рджреЗрдмрд░реА рд╢рд╣рд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд▓реЗрдЦ рд▓рд┐рдЦрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред


рдмрд┐рдВрджреБ рдкрд░ рдкрд╣реБрдВрдЪреЗрдВ


3 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдПрдХ (рд╢рд╛рдпрдж рдПрдХ рдХреНрд╖реЗрддреНрд░, рд▓реЗрдХрд┐рди рд╕рдВрднрд╡рддрдГ рдЕрдзрд┐рдХ) рдХреЗ рд╕рд╛рде рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИред рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛:


 CREATE TABLE `table_1` ( `id` INT (11), `date` DATETIME , `description` TEXT , `id_point` INT (11), `id_user` INT (11), `date_start` DATETIME , `date_finish` DATETIME , `photo` INT (1), `id_client` INT (11), `status` INT (1), `lead__time` TIME , `sendstatus` TINYINT (4) ); 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


  • id_point INT (11);
  • id_user INT (11);
  • date_start DATETIME;
  • date_finish DATETIMEред

рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреЗ рд▓рд┐рдП, .ibd рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рдЗрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рдЙрдирдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЕрдзрд┐рдХ рдкрдардиреАрдп рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЙрд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдРрд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЗрдВрдЯ рдФрд░ рдбреЗрдЯрд╛рдЯрд╛рдЗрдо, рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рд╡реЗ рдЕрдиреНрдп рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдЕрдиреНрдп рд╕рдорд╛рди рдШрдЯрдирд╛рдУрдВ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рд╕рдорд╕реНрдпрд╛ 1 : DATETIME рдФрд░ TEXT рдХреЗ рдкреНрд░рдХрд╛рд░ рд╡рд╛рд▓реЗ рдлрд╝реАрд▓реНрдб рдХрд╛ NULL рдорд╛рди рдерд╛, рдФрд░ рд╡реЗ рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рдирдП рдХреЙрд▓рдо рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдЕрд╢рдХреНрдд рдерд╛, рдФрд░ рдХреБрдЫ рд▓реЗрдирджреЗрди рд╕реЗрдЯрд┐рдВрдЧ innodb_flush_log_at_trx_commit = 0 рдХреА рд╡рдЬрд╣ рд╕реЗ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдордп рдмрд┐рддрд╛рдирд╛ рд╣реЛрдЧрд╛ред


рд╕рдорд╕реНрдпрд╛ 2 : рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ DELETE рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдЯрд╛рдИ рдЧрдИ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдмрд┐рд▓реНрдХреБрд▓ ibd рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реЛрдВрдЧреА, рд▓реЗрдХрд┐рди ALTER TABLE рдХреЗ рд╕рд╛рде рдЙрдирдХреА рд╕рдВрд░рдЪрдирд╛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХреА рдЬрд╛рдПрдЧреАред рдирддреАрдЬрддрди, рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдЗрд╕рдХреЗ рдЕрдВрдд рддрдХ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдХреНрд╕рд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред


рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ DBMS рд╕рдВрд╕реНрдХрд░рдг рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЕрдиреНрдп рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг mariadb 10.1.24 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдорд╛рд░реАрдбрдм рдореЗрдВ рдЖрдк рдЗрдиреЛрдмреАрдбреА рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реЗ рдПрдХреНрд╕реНрдЯреНрд░рд╛рдмреАрдбреА рд╣реИрдВ, рдЬреЛ рдЗрдиреЛрдмреАрдбреА рдорд╛рдпрд╕реНрдХрд▓ рдХреЗ рд╕рд╛рде рд╡рд┐рдзрд┐ рдХреА рдкреНрд░рдпреЛрдЬреНрдпрддрд╛ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рддрд╛ рд╣реИред


рдлрд╝рд╛рдЗрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдЕрдЬрдЧрд░ рдореЗрдВ, рдмрд╛рдЗрдЯреНрд╕ () рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯ рдХреЗ рдмрдЬрд╛рдп рдпреВрдирд┐рдХреЛрдб рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдк рдЗрд╕ рд░реВрдк рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк рдмрд╛рдЗрдЯ рдХреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░реВрдк рдореЗрдВ рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рд░рдгреА (рд╕реВрдЪреА (рдЙрджрд╛рд╣рд░рдг_рдмрд╛рдЗрдЯ_рдЕрд░реЗ)) рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпрд╛рдВ рдЙрдкрдпреЛрдЧреА рд╣реИрдВред


рдХрдИ ibd рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:


рдЫрд╡рд┐


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдЗрди рдХреАрд╡рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдлрд╛рдЗрд▓ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рдлреНрд▓реИрдЯ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдорд┐рд▓реЗрдВрдЧреЗред рд╣рдо рдПрдХ рднрд╛рдЬрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдирдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред


 table = table.split("infimum".encode()) 

рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЕрд╡рд▓реЛрдХрди, рдбреЗрдЯрд╛ рдХреА рдПрдХ рдЫреЛрдЯреА рд░рд╛рд╢рд┐ рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЕрдирдВрдд рдФрд░ рд╕рд░реНрд╡реЛрдЪреНрдЪ рдХреЗ рдмреАрдЪ рдмреНрд▓реЙрдХ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рд╣реИред


рдЫрд╡рд┐ - рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рддрд╛рд▓рд┐рдХрд╛


рдЫрд╡рд┐ - 2 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рддрд╛рд▓рд┐рдХрд╛


рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рд╛рд░рдгреА [0] рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЕрднреА рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдХрдЪреНрдЪрд╛ рдбреЗрдЯрд╛ рдирд╣реАрдВ рдорд┐рд▓ рдкрд╛рдпрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЗрд╕ рдмреНрд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреБрдХреНрд░рдорд┐рдд рдФрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддрд╛рд▓рд┐рдХрд╛ [1] рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реБрдП рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рд░рдгреА рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдкреИрдЯрд░реНрди рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН:


рдЫрд╡рд┐


рдпреЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдорд╛рди рд╣реИрдВред рдкрд╣рд▓рд╛ рдмрд╛рдЗрдЯ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдЦреНрдпрд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реИ рдпрд╛ рдирдХрд╛рд░рд╛рддреНрдордХред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реИрдВред рд╢реЗрд╖ 3 рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ, рдЖрдк рдирд┐рдореНрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ:


 def find_int(val: str): # example '128, 1, 2, 3' val = [int(v) for v in val.split(", ")] result_int = val[1]*256**2 + val[2]*256*1 + val[3] return result_int 

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 128, 0, 0, 1 = 1 , рдпрд╛ 128, 0, 75, 108 = 19308 ред
рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдСрдЯреЛ-рдЗрдВрдХреНрд░реАрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдереА, рдФрд░ рдпрд╣рд╛рдВ рдЖрдк рдЗрд╕реЗ рдкрд╛ рднреА рд╕рдХрддреЗ рд╣реИрдВ


рдЫрд╡рд┐


рдкрд░реАрдХреНрд╖рдг рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдерд╛ рдХрд┐ рдбреИрдЯ рдЯрд╛рдЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ 5 рдмрд╛рдЗрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ 153 (рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╡рд╛рд░реНрд╖рд┐рдХ рдЕрдВрддрд░рд╛рд▓ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрднрд╛рд╡рд┐рдд) рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ DATTIME рд░реЗрдВрдЬ '1000-01-01' рд╕реЗ '9999-12-31' рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреЗрдЯрд╛ 2016 рд╕реЗ 2019 рдХреА рдЕрд╡рдзрд┐ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ 5 рдмрд╛рдЗрдЯреНрд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВ ред


рд╕реЗрдХрдВрдб рдХреЗ рдмрд┐рдирд╛ рд╕рдордп рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗ рдЧрдП рдереЗред рд╕реНрдХреНрд░рд┐рдкреНрдЯ:


 day_ = lambda x: x % 64 // 2 # {x,x,X,x,x } def hour_(x1, x2): # {x,x,X1,X2,x} if x1 % 2 == 0: return x2 // 16 elif x1 % 2 == 1: return x2 // 16 + 16 else: raise ValueError min_ = lambda x1, x2: (x1 % 16) * 4 + (x2 // 64) # {x,x,x,X1,X2} 

рдПрдХ рд╕рд╛рд▓ рдФрд░ рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрд╡рд╕реНрде рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ:


 ym_list = {'2016, 1': '153, 152, 64', '2016, 2': '153, 152, 128', '2016, 3': '153, 152, 192', '2016, 4': '153, 153, 0', '2016, 5': '153, 153, 64', '2016, 6': '153, 153, 128', '2016, 7': '153, 153, 192', '2016, 8': '153, 154, 0', '2016, 9': '153, 154, 64', '2016, 10': '153, 154, 128', '2016, 11': '153, 154, 192', '2016, 12': '153, 155, 0', '2017, 1': '153, 155, 128', '2017, 2': '153, 155, 192', '2017, 3': '153, 156, 0', '2017, 4': '153, 156, 64', '2017, 5': '153, 156, 128', '2017, 6': '153, 156, 192', '2017, 7': '153, 157, 0', '2017, 8': '153, 157, 64', '2017, 9': '153, 157, 128', '2017, 10': '153, 157, 192', '2017, 11': '153, 158, 0', '2017, 12': '153, 158, 64', '2018, 1': '153, 158, 192', '2018, 2': '153, 159, 0', '2018, 3': '153, 159, 64', '2018, 4': '153, 159, 128', '2018, 5': '153, 159, 192', '2018, 6': '153, 160, 0', '2018, 7': '153, 160, 64', '2018, 8': '153, 160, 128', '2018, 9': '153, 160, 192', '2018, 10': '153, 161, 0', '2018, 11': '153, 161, 64', '2018, 12': '153, 161, 128', '2019, 1': '153, 162, 0', '2019, 2': '153, 162, 64', '2019, 3': '153, 162, 128', '2019, 4': '153, 162, 192', '2019, 5': '153, 163, 0', '2019, 6': '153, 163, 64', '2019, 7': '153, 163, 128', '2019, 8': '153, 163, 192', '2019, 9': '153, 164, 0', '2019, 10': '153, 164, 64', '2019, 11': '153, 164, 128', '2019, 12': '153, 164, 192', '2020, 1': '153, 165, 64', '2020, 2': '153, 165, 128', '2020, 3': '153, 165, 192','2020, 4': '153, 166, 0', '2020, 5': '153, 166, 64', '2020, 6': '153, 1, 128', '2020, 7': '153, 166, 192', '2020, 8': '153, 167, 0', '2020, 9': '153, 167, 64','2020, 10': '153, 167, 128', '2020, 11': '153, 167, 192', '2020, 12': '153, 168, 0'} def year_month(x1, x2): # {x,X,X,x,x } for key, value in ym_list.items(): key = [int(k) for k in key.replace("'", "").split(", ")] value = [int(v) for v in value.split(", ")] if x1 == value[1] and x2 // 64 == value[2] // 64: return key return 0, 0 

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рд╕рдордп рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдПрди рдЦрд░реНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдЧрд▓рддрдлрд╣рдореА рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдЧрд▓рд╛, рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдбреЗрдЯрд╛рдЯрд╛рдЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ:


 def find_data_time(val:str): val = [int(v) for v in val.split(", ")] day = day_(val[2]) hour = hour_(val[2], val[3]) minutes = min_(val[3], val[4]) year, month = year_month(val[1], val[2]) return datetime(year, month, day, hour, minutes) 

рдЗрдВрдЯ, рдЗрдВрдЯ, рдбреЗрдЯрд╛рдЗрдо, рдбреЗрдЯрд╛рдЗрдо рд╕реЗ рдЕрдХреНрд╕рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рдерд╛ рдЫрд╡рд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ рджреЛ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред


рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдкрд╛рддреЗ рд╣реИрдВ:


 fined = re.findall(r'128, \d*, \d*, \d*, 128, \d*, \d*, \d*, 153, 1[6,5,4,3]\d, \d*, \d*, \d*, 153, 1[6,5,4,3]\d, \d*, \d*, \d*', int_array) 

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп, рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рдореЗрдВ NULL рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рд╣рдо рдкрд╛рдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХреЗ рдмрд╛рджред рд╕реНрдХреНрд░рд┐рдкреНрдЯ:


 result = [] for val in fined: pre_result = [] bd_int = re.findall(r"128, \d*, \d*, \d*", val) bd_date= re.findall(r"(153, 1[6,5,4,3]\d, \d*, \d*, \d*)", val) for it in bd_int: pre_result.append(find_int(bd_int[it])) for bd in bd_date: pre_result.append(find_data_time(bd)) result.append(pre_result) 

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдм рдХреБрдЫ, рдкрд░рд┐рдгрд╛рдо рд╕рд░рдгреА рд╕реЗ рдбреЗрдЯрд╛, рдпрд╣ рд╡рд╣ рдбреЗрдЯрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред ### PSред ###
рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд▓реЗрдЦ рдХрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдЖрдкрдХреА рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рддреНрд╡рд░рд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдирд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдорд╛рд░реАрджрдм рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╕реАрдорд┐рдд рд╕рдордп рдХреЗ рдХрд╛рд░рдг, рд╡рд░реНрддрдорд╛рди рд╡рд┐рдзрд┐ рд╕рдмрд╕реЗ рддреЗрдЬ рд▓рдЧ рд░рд╣реА рдереАред


рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЕрдиреБрдорд╛рдирд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рд╕реЗ рдорд╛рдирдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реЛрдЧрд╛ рдФрд░ рдХрдо рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред

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


All Articles