2016-10-08 5 views
0

を使用して複数のファイルにファイルを分割して、私はすべて読む必要があるテキストファイル内のすべてのファイルに名前を保存します小さなファイルとは、元のファイルにをマージします。は、どのように私はビデオファイルを持っていると私はサイズ<strong>256キロバイト</strong>のいくつかの小さなファイルに<strong>除算</strong>それをする必要があるのpython

pythonでこれはどうやってできますか?分割で

+0

おそらくそう。何か具体的に? –

+1

これはPythonでも可能ですが、すでにそれを行うプログラムが存在します: 'split'と' cat' –

+0

小さなファイルはビデオとして読み込む必要がありますか?大きなファイルを分割してチャンクにするだけでは、それはできません。 –

答えて

2

まず刺し:

input_file = open(input_filename, 'rb') 
blocksize = 4096 
chunksize = 1024 * 256 
buf = None 
chunk_num = 0 
current_read = 0 
output_filename = 'output-chunk-{:04d}'.format(chunk_num) 
output_file = open(output_filename, 'wb') 
while buf is None or len(buf) > 0: 
    buf = input_file.read(blocksize) 
    current_read += len(buf) 
    output_file.write(buf) 
    if chunksize <= current_read: 
     output_file.close() 
     current_read = 0 
     chunk_num += 1 
     output_filename = 'output-chunk-{:04d}'.format(chunk_num) 
     output_file = open(output_filename, 'wb') 
output_file.close() 
input_file.close() 

これが、あなたが途中得る可能性があります。必要に応じて適応する。

マージ:

blocksize = 4096 
chunk_num = 0 
input_filename = 'output-chunk-{:04d}'.format(chunk_num) 
output_filename = 'reconstructed.bin' 
output_file = open(output_filename, 'wb') 
while True: 
    try: 
     input_file = open(input_filename, 'rb') 
    except IOError: 
     break 
    buf = None 
    while buf is None or len(buf) > 0: 
     buf = input_file.read(blocksize) 
     output_file.write(buf) 
    input_file.close() 
    chunk_num += 1 
    input_filename = 'output-chunk-{:04d}'.format(chunk_num) 
output_file.close() 
+0

あなたの答えをありがとう、それは素晴らしい仕事ですが、どのように私はすべてのファイルを読み取って、元のファイルにそれらをマージすることができますか? –

+0

um、 'cat output-chunk- *> reconstructed.bin'です。 – wildwilhelm

+0

申し訳ありませんあなたのコメントを理解できません!どのように私はそれらをPythonを使用してマージできますか? –

関連する問題

 関連する問題