2
下面的代碼將JPEG圖像轉換爲一個字符串。該字符串然後被保存到image
變量中。然後,使用File IO將該字符串寫入a.jpg
,然後通過將stdout輸出到該文件,然後將其寫入b.jpg
。file.write()和sys.stdout.write()給我兩個不同的輸出 - Python
import thumb
import sys
x = thumb.Thumbnail('test.jpg')
x.generate(56, 56)
image = str(x)
with open('a.jpg', 'wb') as f:
# saving to a.jpg
f.write(image)
# saving to b.jpg
sys.stdout.write(image)
用法:
python blah.py > b.jpg
這將導致兩個圖像文件(A.JPG和B.JPG)。這些圖像應該是相同的......但它們不是。
我可以看到,通過查看在記事本中的每個圖像,即換行符是,不知何故,被添加到B.JPG。導致圖像損壞。
爲什麼a.jpg與b.jpg不同?
sys.stdout.mode是 'W',我想。請參閱http://stackoverflow.com/questions/2374427/python-2-x-write-binary-output-to-stdout – DSM 2011-01-25 04:44:53
當您通過標準輸出重定向您的shell時,您的shell可能會解釋您的輸出。你在Linux上?使用bash? – Falmarri 2011-01-25 04:45:43