2017-08-29 2 views
0

Ich möchte viele Grib-Dateien aus einem Ordner lesen und dann als Textdateien speichern. Der Name der Textdatei hat den gleichen Namen wie die GRIB-Datei. Mein Code:Grib-Dateien in Textdateien mit Python konvertieren

import pygrib, os, glob 

LAT1 = None 
LAT2 = None 
LON1 = None 
LON2 = None 

def process_message(grb, outfile): 
    tmps = "%s" % grb 
    wtitle = tmps.split(':')[1] 
    wtime = tmps.split(':')[len(tmps.split(':'))-1].split(' ')[1] 
    data, lat, lons = grb.data(LAT1, LAT2, LON1, LON2) 
    for i in xrange(len(data)): 
     tdata = data[i] 
     tlat = lat[i] 
     tlon = lons[1] 
    for j in xrange(len(tdata)): 
     wdata = tdata[j] 
     wlat = tlat[j] 
     wlon = tlon[j] 
     outfile.write("%s, %s, %s, %s, %s\n" % (wtitle, wtime, wlat, 
    wlon, wdata)) 

os.chdir('/home/george/mona_modificat/data')   
filenames = glob.glob('*.grb') 

for f in filenames: 
     grbs = pygrib.open(f) 
     grbs.seek(0) 
     outfile = f 
     for grb in grbs: 
      process_message(grb, outfile) 
      os.rename(outfile, outfile + '.txt') 
     grbs.close() 

Wenn ich den Code ausführen, bekomme ich diesen Fehler: Attribute: 'str' Objekt hat kein Attribut 'write'

Prost!

Antwort

1

outfile ist eine Zeichenfolge, keine Datei, glob gibt eine Liste der Dateipfade zurück. Sie müssen es in process_message öffnen.

def process_message(grb, outfile): 
    with open(outfile, 'w') as output: 
     ... 
+0

Jetzt, wenn ich den Code ausführen, ist es keine Fehler, aber nichts passiert ... keine Textdatei wurde erstellt .... – user1032066

Verwandte Themen