【发布时间】:2014-10-16 04:16:11
【问题描述】:
我有一个 PPM 文件,我需要对其执行某些操作。该文件的结构如下例所示。第一行,“P3”只是说明它是什么类型的文件。在第二行中,它给出了图像的像素尺寸,所以在这种情况下,它告诉我们图像是 480x640。在第三行中,它声明了任何颜色可以采用的最大值。之后是代码行。每三个整数组给出一个像素的 rbg 值。所以在本例中,第一个像素的 rgb 值为 49、49、49。第二个像素的 rgb 值为 48、48、48,依此类推。
P3
480 640
255
49 49 49 48 48 48 47 47 47 46 46 46 45 45 45 42 42 42 38 38
38 35 35 35 23 23 23 8 8 8 7 7 7 17 17 17 21 21 21 29 29
29 41 41 41 47 47 47 49 49 49 42 42 42 33 33 33 24 24 24 18 18
...
现在您可能会注意到,这个特定的图片应该是 640 像素宽,这意味着 640*3 整数将提供第一行像素。但是这里的第一行距离包含 640*3 个整数非常非常远。所以这个文件中的换行是没有意义的,所以我的问题。
读取 Python 文件的主要方式是逐行读取。但我需要将这些整数收集到 640*3 的组中,并将其视为一条线。如何做到这一点?我知道我可以逐行读取文件并将每一行附加到某个列表中,但是那个列表会很大,我认为这样做会给设备的内存带来不可接受的负担。但除此之外,我没有想法。帮助将不胜感激。
【问题讨论】:
-
每行有多少个这样的数字?
-
@thefourtheye 它因行而异,没有明显的系统性。
标签: python python-2.7