-1
どのように多くのファイルを抽出するために、(100個のファイルのようなtheresの)より多くのファイル(100個のファイルのようなもの)を抽出する方法は?
pw_201701010000.nc
pw_201701010100.nc
pw_201701010200.nc
pw_201701010300.nc
...
pw_201701022300.nc
コード:あなたはすべての.nc
ファイルを取得するglob
を使用する場合
from numpy import *
from netCDF4 import Dataset
fname = 'pw_201701010000'
f = Dataset(fname+'.nc')
print (f.variables)
data = f.variables['pw'][0][:]
data = data-0.
time = f.variables['time'][:]
lat = f.variables['latitude'][:]
lon = f.variables['longitude'][:]
f.close()
f = open(fname+'.txt','w')
for i in range(len(lat)):
for j in range(len(lon)):
if lat[i]>=-3.0 and lat[i]<=0 and lon[j]>=116.0 and lon[j]<=119.0:
#f.write(('%f\t%f\t%f\n')%(lat[i],lon[j],data[i,j]))
f.write(('%f\t')%(data[i,j]))
if lat[i]>=-3.0 and lat[i]<=0:
f.write('\n')
f.close()
+1ですが、私はglobを使用しません。 100 * .ncファイルがある場合、そこには他のファイルの数があります。 dirが大きければ、listdir()(globモジュール)のgenerator版をos.listdir()を使用して作成し、os.path.isfile(fname)とfname.endswith( "。nc")をチェックすることをお勧めします。その後、抽出を開始する前にglob.glob()が終了するのを待つ必要はありません。 – Dalen
@Dalen:チップをありがとう。私は – inspectorG4dget
を少し更新しました。しかし、iglob()はos.listdir()も使用します。これは、ディレクトリからすべてのファイルを取得するまでブロックできます。それらの多くがある場合、遅延はかなり大きいことができます。私は、iglob()のような関数を書くべきですが、リストを返さずにジェネレータオブジェクトを代わりに返す他のlistdir()を使用することを意味しました。したがって、os.listdir()を待つことなく、返されたリストをもう一度繰り返しますが、ファイルごとにディレクトリファイルを調べるときにファイルをチェックします。 – Dalen