ã€ã³ã¿ãŒããããååã«é«éã«ãªããæ¯èŒç倧ããªãµã€ãºã®ãã¡ã€ã«ã®åãæž¡ããæ°è»œã«è¡ãããããã«ãªã£ãŠãããåç»ãç»åãAIé¢é£ã®ããŒã¿ãªã©æ°ã®ã¬ãè¶ ãããã¡ã€ã«ãéãããŠããããšãããããããããããã¯ãŒã¯ã«ãã£ãŠã¯ããŠã³ããŒãäžã«ãšã©ãŒã«ãªãããŠã³ããŒãã§ããªãããšããããããã§ãä»åã¯å·šå€§ãã¡ã€ã«ãåå²ããããã°ã©ã ãäœã£ãŠã¿ããã
巚倧ãã¡ã€ã«ã®åå²ãPythonã«ãä»»ã
æè¿ã§ã¯ãã¡ã€ã«ã®åãæž¡ããããéãOneDriveãGoogleDriveãDropboxãªã©ã®ã¯ã©ãŠãã¹ãã¬ãŒãžãçµç±ããããšãå€ãã ããããããããµãŒãã¹ã䜿ããšå·šå€§ãªãã¡ã€ã«ã§ããæ¯èŒçã¹ã ãŒãºã«åãæž¡ããå¯èœã ããããããã¡ã€ã«ã®URLãã¡ãŒã«ãªã©ã§éä¿¡ããåŸã§ã誀éä¿¡ã«æ°ä»ãããšããŠããããã«å ±æã忢ããããšãã§ããã®ã§å©äŸ¿æ§ãè¯ãã
çè ãå€ãã®ããŒã¿ãããããã¯ã©ãŠãã¹ãã¬ãŒãžçµç±ã§æ¥ã ããåãããŠããããšããããããæ¥ãèªå® ã®ãããã¯ãŒã¯ã®èª¿åãæªããäœåºŠè©ŠããŠãéäžã§ããŠã³ããŒããæ¢ãŸã£ãŠããŸããšããç¶æ³ã«é¥ã£ãŠããŸã£ããããã§ãæãã€ããã®ãã巚倧ãªãã¡ã€ã«ãå°ããªãã¡ã€ã«ã«åå²ããŠããŠã³ããŒãããŠãæåŸã«çµåãããšããææ³ã ãå€å°ãããã¯ãŒã¯ã®èª¿åãæªããšããŠãããã¡ã€ã«ãå°ããåå²ããã°ãæ¯èŒçã¹ã ãŒãºã«ããŠã³ããŒããã§ããã
ããã§ã巚倧ãªãã¡ã€ã«ãåå²ããããŒã«ã¯ãæ¢ã«ããããããã®ã ããPythonã䜿ãããšã§æ¯èŒçç°¡åã«äœæã§ããããã£ãããã¡ã€ã«åå²ããŒã«ãäœã£ãŠã¿ããã
ãã¡ã€ã«çµåã¯ããããã¡ã€ã«ã䜿ãããšãã§ãã
ãªãããã¡ã€ã«ã®åå²èªäœã¯Pythonã䜿ãããšã«ãªãã®ã ãããã¡ã€ã«ã®çµåã¯Windowsã®æšæºæ©èœã§ããããããã¡ã€ã«ã䜿ãäºãã§ãããäŸãã°ããã¡ã€ã«ã01.binããšã02.binããšã03.binããçµåããŠãoutput.mp4ãã«ä¿åããããã°ã次ã®ãããªããããã¡ã€ã«ãäœãã°è¯ãã
rem ããããã¡ã€ã«
copy /b 01.bin + 02.bin + 03.bin output.mp4 > nul
ããããã¡ã€ã«ãè¯ãç¹ã¯ãPythonãã€ã³ã¹ããŒã«ããŠãªããŠããããããã¡ã€ã«ãããã«ã¯ãªãã¯ããã ãã§å®è¡ã§ããç¹ã«ããã
ãã®ããã«ããã¡ã€ã«ã®çµååŠçã¯ç°¡åã§ãããããä»åäœãPythonã®ããã°ã©ã ã§ã¯ããã¡ã€ã«ãåå²ããã®ãšåæã«ããã¡ã€ã«ãçµåããããããã¡ã€ã«ãåæã«çæããä»çµã¿ã«ããŠã¿ããã
ãã¡ã€ã«åå²ãè¡ãããã°ã©ã
以äžã®ããã°ã©ã ããã¡ã€ã«åå²ãããã³ããã¡ã€ã«çµåããããã¡ã€ã«ãæžãåºãããã°ã©ã ã ããsplit_file.pyããšããååã§ä¿åãããã
import os
# ãã¡ã€ã«ãåå²ãã颿° --- (*1)
def split_file(file_path, chunk_size):
# ãã¡ã€ã«ãéã --- (*2)
with open(file_path, 'rb') as f:
fileno = 0
chunk = f.read(chunk_size) # åå²ãµã€ãºåèªã¿èŸŒã --- (*3)
while chunk:
# åºåãã¡ã€ã«åãæ±ºãã --- (*4)
output_filename = f"{file_path}.parts_{fileno:02d}.bin"
print(f"[åºå{fileno}] {output_filename}")
# åå²ãã¡ã€ã«ãåºå --- (*5)
with open(output_filename, 'wb') as output:
output.write(chunk)
fileno += 1
chunk = f.read(chunk_size)
# Windowsçšã«ããããã¡ã€ã«ãçæãã --- (*6)
basename = os.path.basename(file_path)
with open(file_path + '.bat', 'wt', encoding='shift_jis') as bat:
files = [f'{basename}.parts_{no:02d}.bin' for no in range(0, fileno)]
files_str = ' + '.join(files)
bat.write(f'copy /b {files_str} out_{basename} > nul')
if __name__ == "__main__":
# åå²ãå®è¡ --- (*7)
input_file_path = 'test.mp3'
chunk_size = 1 * 1024 * 1024 # 1MBãæå®
split_file(input_file_path, chunk_size) # åå²å®è¡
æåã«ããã°ã©ã ã®è§£èª¬ããããã
(ïŒ1)ã§ã¯ãã¡ã€ã«ãåå²ãã颿°split_fileãå®çŸ©ãããåŒæ°ã«ã¯ãå ¥åãã¡ã€ã«åãšåå²ãµã€ãºãæå®ããã
(ïŒ2)ã§ã¯å ¥åãã¡ã€ã«ããã€ããªã¢ãŒãã§èªã¿èŸŒã¿ã(ïŒ3)ã§ç¹°ãè¿ãåå²ãµã€ãºãã€èªã¿èŸŒãã(*4)ã§ã¯åå²å ã®ãã¡ã€ã«åãæ±ºå®ãã(ïŒ5)ã§åå²ãã¡ã€ã«ãæžãåºãã
ãããŠã(ïŒ6)ã§ã¯ãçµåã®ããã®ããããã¡ã€ã«ãçæããåŠçãèšè¿°ããŠãããå ã»ã©ç޹ä»ãããcopy /b (çµå察象ãã¡ã€ã«) (åºåãã¡ã€ã«) > nulããšããã³ãã³ããæžãåºããŠããã
æåŸã«(ïŒ7)ã§å ¥åãã¡ã€ã«åãšåå²ãµã€ãºãæå®ããŠã(ïŒ1)ã§å®çŸ©ãã颿°ãåŒã¶ã
ãªããããã§ã¯ããtest.mp3ããšãããã¡ã€ã«ã1MBããšã«åå²ãããšããæå®ããªãããŠããããã®ãããå®éã«èªåã®ãã¡ã€ã«ãåå²ããããšãã¯(ïŒ7)以éã®éšåãæžãæããŠå®è¡ãããã
ããã°ã©ã ãå®è¡ããã«ã¯ãPowerShellãªã©ã®ã¿ãŒããã«ã§æ¬¡ã®ã³ãã³ããå®è¡ããã
cd <ããã°ã©ã ãé
眮ãããã©ã«ãã®ãã¹>
python split_file.py
ãããšã次ã®ããã«ãtest.mp3ããåå²ãããŠããtest.mp3.parts_00.binããtest.mp3.parts_01.binãâŠãšãããã¡ã€ã«ãšãtest.mp3.batããšããçµåçšã®ããããã¡ã€ã«ãçæãããã
ãããŠãåºåãããããããã¡ã€ã«ãtest.mp3.batããããã«ã¯ãªãã¯ããããšã§ãã¡ã€ã«ã®çµåãè¡ãããã
å®éã«ãåå²ãããã¡ã€ã«ãé åžããéã¯ãããããã¡ã€ã«ãšã(å ãã¡ã€ã«å).parts_*.binããšããåå²ãã¡ã€ã«ãé åžããã°è¯ãã
ãã ãããããã¯ãŒã¯è¶ãã«ããããã¡ã€ã«ãé åžããå Žåãæ¬¡ã®ç»åã®ããã«ãWindowsã®Defenderã«ããã»ãã¥ãªãã£ä¿è·æ©èœãåãããããã®ãŸãŸã§ã¯å®è¡ã§ããªãããã¡ã€ã«ãå®è¡ããã«ã¯ã詳现æ å ±ããã¯ãªãã¯ãããã®åŸãå®è¡ããæŒãå¿ èŠãããã
æ¹é ããŠã¿ã
ãªããåå²ããŒã«ãäœã£ãŠãããæã£ã以äžã«æ¥œãããªã£ãŠããŸã£ãã®ã§ãäžèšããã°ã©ã ãæ¹é ããŠãWindowsã®ããããã¡ã€ã«çšã ãã§ãªããmacOS/Linuxçšã®ã·ã§ã«ã¹ã¯ãªãããçæããæ©èœã远å ããããããŠãã³ãã³ãã©ã€ã³ã§ãã¡ã€ã«åãåå²ãµã€ãºãæå®ã§ããããã«ãããŠã¿ããå®å šçããã¡ãã«ã¢ããããŠã¿ãã®ã§ãæ°ã«ãªã人ã¯èŠãŠã¿ãŠæ¬²ããã
ãšã¯èšãããã®æã®ããŒã«ãäœãã®ã¯é£æåºŠãé«ããªãäžã«ãåºåãã¡ã€ã«åãªã©èªåçšã«ã«ã¹ã¿ãã€ãºããŠäœ¿ãããå Žé¢ãå€ããšæãããã²ãèªåçšã®ãã¡ã€ã«åå²ããŒã«ãäœã£ãŠã¿ããã
èªç±åããã°ã©ããŒããããã¯ãã©ã«ãŠãããã°ã©ãã³ã°ã®æ¥œãããäŒããæŽ»åãããŠããã代衚äœã«ãæ¥æ¬èªããã°ã©ãã³ã°èšèªããªã§ããã ãããã¹ã鳿¥œããµã¯ã©ããªã©ã2001幎ãªã³ã©ã€ã³ãœãã倧è³å ¥è³ã2004幎床æªèžãŠãŒã¹ ã¹ãŒããŒã¯ãªãšãŒã¿èªå®ã2010幎 OSSè²¢ç®è ç« åè³ãæè¡æžãå€ãå·çããŠãããçŽè¿ã§ã¯ããã·ãŽããã¯ãã©ã PythonèªååŠçã®æç§æž(ãã€ããåºç)ããããã«äœ¿ãã!æ¥åã§å®è·µã§ãã! Pythonã«ããAIã»æ©æ¢°åŠç¿ã»æ·±å±€åŠç¿ã¢ããªã®ã€ããæ¹ TensorFlow2察å¿(ãœã·ã )ãããã³ã¬ã§ãã£ããåŠã¶Python(ãã€ããåºç)ããªã©ã


