2016-07-12 5 views
1

私は、abc_0.dat、abc_1.dat .... abc_1999.datのような名前を持つ2000年のデータファイルについて同じ分析を行う必要があります。私は、Pythonでこの種の問題のループを作ることはとにかくあるのだろうかと思います。ここに私が取り組んでいるスクリプトがあります。スクリプトのほとんど Pythonのループ文字列

from scipy import stats 
import numpy as np 
import scipy as sp 
import matplotlib 
import matplotlib.pyplot as plt 
import sys 
import math 

for x in xrange(2000): 

gps_time = 932170000 + x*1000 
i = str(x) 

a_file =$(gps_time).0-$(i).dat 

b_file =$(gps_time).0.dat 

x = np.loadtxt(a_file, skiprows=1, usecols=[18]) 
y = np.loadtxt(a_file, skiprows=1, usecols=[17]) 
z = np.loadtxt(b_file, skiprows=1, usecols=[1]) 

はちょうどあなたの質問は本当にひどい言葉で表現されたスクリプト

+0

質問がわかりません。明確にしてください... – Julien

+0

説明のためでさえ、 '$(gps_time).0 - $(i).dat'は実際のPython構文を使うべきです。 –

+0

また、上記のコードで 'for'ループをインデントする必要があります。 – nbryans

答えて

0

for x in xrange (0,2000): 
    gps_time = 932170000 + x*1000 
    a_file =str(int(gps_time)) + ".0-" + str(x) + ".dat" 
    b_file =str(int(gps_time)) + ".0.dat" 
0

の概念を説明するために起草が、私はあなたが言っているの要旨を取得する場合は、ここでより良い方法ですされています。

(すべてのファイルが同じディレクトリにあることを確認してください)。

import glob 
directory = 'path/to/directory' + '*.dat' 

files = glob.glob(directory) 

for currFile in files: 
    function1(currFile) 
    function2(currFile) 
    # insert whatever else you want to do with currFile here. 

など

私はforループと文字列を組み合わせることで、問題を解決した
+0

'file'は、Python 2では' open() 'の代替名をマスクするので、変数の悪い名前です。 'fname'ですか? – cdarke

+0

これは、使用可能なコードとして貼り付けられたコピーではありません。参照用に意図されていましたが、例を更新します。ありがとうございました :) – Wboy