2017-03-16 4 views
0

すべてのnumpyファイルを1つのnumpyファイルにマージし、そのファイルをバイナリファイルに変換する必要があります。まず2つの異なるリストファイルを作成して、ファイル名を2つの異なるリストにマージします。 numpyのファイルが含まれている マイフォルダには、次のようになります。すべてのファイル名を1つのファイルに入れる方法は?

File1_Trace1 
File2_Trace2 
File2_Trace3 

が、私はこのコードを使用しよう:

import numpy as np 
import sys 
import os 

# be sure to pass numbers on command line 
if len(sys.argv)==3: 
    start_index, stop_index = int(sys.argv[1]), int(sys.argv[2]) 
else: 
# or just use 
    start_index, stop_index = 1, 1000 

path = r'Y:\My_Scripts' 
File_path= r'Y:\My_Scripts\1000_Traces' 
lines_npy = [line.rstrip('\n') for line in open(os.path.join(path, 'Traces.list_npy'))] 
lines_bin = [line.rstrip('\n') for line in open(os.path.join(path, 'Traces.list_bin'))] 
all_traces = np.zeros((stop_index - start_index + 1, 8000)) 
for x in range(start_index, stop_index): 
    trace = np.load(os.path.join(path, lines_npy[x])) 
    trace.astype('float32').tofile(os.path.join(File_path, lines_bin[x])) 
    all_traces[x] = trace 
    all_traces.astype('float32').tofile(os.path.join(path, 'TRACES.bin')) 

、それは2のために私に尋ねる最初は、動作しないという問題ファイルをリストします。それは私にこのエラーをdipslay:

trace = np.load(os.path.join(path, lines_npy[x])) 
    IndexError: list index out of range 
+0

lines_npyとlines_binが正しく初期化されていることを確認してください。私は本当にそれらの行を疑う。 – saikumarm

+0

問題は、直接作成しようとしていますが、できません。 –

+0

'IndexError:リストインデックスが範囲外です。 ' check start_index、stop_index – saikumarm

答えて

0

問題はインデックスlines_npyです。 xは無効な値です。おそらく大きすぎます。あなたは、コードのこの部分に焦点を当てる必要があることを追跡するには:

# be sure to pass numbers on command line 
if len(sys.argv)==3: 
    start_index, stop_index = int(sys.argv[1]), int(sys.argv[2]) 
else: 
# or just use 
    start_index, stop_index = 1, 1000 

path = r'Y:\My_Scripts' 
File_path= r'Y:\My_Scripts\1000_Traces' 
lines_npy = [line.rstrip('\n') for line in open(os.path.join(path, 'Traces.list_npy'))] 

print(len(lines_npy) 
print(start_index, stop_index) 

for x in range(start_index, stop_index): 
    print(lines_npy[x])) 

をデフォルトstop_indexは、あなたが1000個のファイルを持っている可能性があることを示していますか?それは理にかなっていますか?

+0

あなたの答えをありがとうございます、私が見つけた結果lines_npy = [ ]は空で、start_index = 1、stop_index = 1000なので、すべてのファイルの名前を1つのリストに入れる方法です。 –

+0

'glob'はディレクトリ内のファイルの名前を取得するための素晴らしいツールです。 – hpaulj

関連する問題