2017-02-21 10 views
1

Ich bin ein Anfänger in Python. Ich versuche, alle Ascii-Dateien aus einem Ordner zu lesen, und nachdem ich sie in Image umgewandelt habe, möchte ich, dass sie alle in einem anderen Ordner im selben Verzeichnis gespeichert werden. Der Code läuft, aber ich bekomme keine Ausgabe und es wird kein Fehler angezeigt.Lesen und Speichern mehrerer Bilder in einem Ordner: Python

Code ohne Schleife, für einzelnes Bild funktioniert perfekt.

Bitte helfen.

import os 
import glob 
import numpy as np 
from PIL import Image 

path = r'D:\user\ASCII' 
outpath = 'D:\user\ASCII\TIFF' 

filenames = glob.glob(path + "/*.asc") #read all files in the path mentioned 

for x in filenames: 
    myarray = np.loadtxt(x, skiprows=9) 
    im = Image.fromarray(myarray) 
    im.save(outpath + '/*.tif') 

Antwort

2

Sie haben einen Stern in der save() Funktion, die keinen Sinn macht, es nichts zu entsprechen hat. Es ersetzt nicht automatisch die Funktion * von der Glob-Funktion. Ich denke, was Sie so etwas wie dieses

src_fname, ext = os.path.splitext(x) # split filename and extension 
# construct output filename, basename to remove input directory 
save_fname = os.path.join(outpath, os.path.basename(src_fname)+'.tif') 
im.save(save_fname) 

Denken Sie daran, os.path Modulfunktionen zu verwenden, statt verketten Dateinamen mit Schrägstrichen machen wollte, da sie Grenzfälle korrekt auf jeder Plattform behandeln.

+0

Danke Ondřej für Hilfe. Wenn wir den Dateinamen und die Erweiterung teilen, funktioniert 'np.loadtext' nicht. –

+0

Sie teilen es auf, nachdem Sie 'np.loadtxt (x)' verwendet haben. Auf diese Weise ist die ursprüngliche 'x'-Variable ein vollständiger gültiger Dateiname. –

Verwandte Themen