2017-02-21 67 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

感谢Ondřej的帮助。如果我们分割文件名和扩展名,那么'np.loadtext'将不起作用。 –

+0

你在使用'np.loadtxt(x)'后分割它,这样原来的'x'变量就是一个完整的有效文件名。 –

相关问题