2017-02-21 2 views
1

Я новичок в python. Я пытаюсь прочитать все файлы ascii из одной папки и после преобразования их в Image, я хочу, чтобы все они были сохранены в другую папку в том же каталоге. Код работает, но я не получаю никакого вывода, и ошибка не отображается.Чтение и сохранение нескольких изображений в папке: Python

Код без цикла, для одного изображения работает отлично.

Пожалуйста, помогите.

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') 

ответ

2

Вы звездочка в save() функции, которая не имеет никакого смысла, это не имеет никакого отношения к матчу. Он не будет автоматически заменять матч * функцией glob. Я думаю, что вы хотели сделать что-то вроде этого

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) 

Не забывайте использовать os.path функции модуля вместо конкатенации имен файлов с косыми чертами, как они обращаются с крайними случаями правильно на любой платформе.

+0

Thanks Ondřej за помощью. если мы разделим имя файла и расширение, то «np.loadtext» не будет работать. –

+0

Вы разделили его после использования 'np.loadtxt (x)', таким образом, исходная переменная 'x' является полным допустимым именем файла. –

Смежные вопросы