2017-03-09 2 views
0

私はたくさんのファイルをフォルダにソートしたいのです。次のようにnameing方式は次のとおりです。Pythonまたはbashでフォルダにファイルを整理しますか?

text_1_text_-66_text_.mrc 
text_1_text_-63_text_.mrc 
text_1_text_-60_text_.mrc 
text_1_text_-57_text_.mrc 
text_2_text_-66_text.mrc 
text_2_text_-63_text.mrc 
text_2_text_-60_text.mrc 

など(実際のファイルの数が66のマイナスとプラスであるので、文字列1は、例えば、より多くを持っています)。私は最初の数でソートしたい(その1文字列1で_...)I持って、私は以前にファイルをソートするために使用するスクリプト:

import os 
import shutil 

n = 1 

while (n < 500): 
    if os.path.isfile('Stack_%d.txt' % (n)): 
     directory = 'Stack_%d' % (n) 
     os.makedirs(directory) 
     shutil.move('Stack_%d.txt' % (n), 'stack_%d' % (n)) 
     shutil.move('Stack_%d_shifts.txt' % (n), 'stack_%d' % (n)) 
     shutil.move('Stack_%d.mrc' % (n), 'stack_%d' % (n)) 
     shutil.move('Stack_%d.rawtlt' % (n), 'stack_%d' % (n)) 
    else: 
     n = n+1 

これは、ビット原油であるが、それらのファイルをソートするためにうまく働きました。理想的な世界では、bashで*と似たコマンドを知りたいだけです。つまり、それぞれの先頭に文字列置換を使用し、残りの文字列を使用することができます。

申し訳ありません申し訳ありませんプログラミングには新しく、すべての使用例が小さなスクリプトで、ゆっくりとそこに着くようです。

+0

はhttps://docs.python.org/3/library/glob.htmlを参照してください。 – cdarke

答えて

0

をしたい:

#!/bin/bash 

for FILE in *.mrc 
do 
    NUM=$(echo $FILE | cut -d'_' -f 2) 
    mkdir -p Stack_$NUM 
    mv $FILE Stack_$NUM 
done 
関連する問題