2017-02-21 70 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'變量就是一個完整的有效文件名。 –

相關問題