【发布时间】:2015-02-01 14:54:29
【问题描述】:
import binascii
import struct
import os
from PIL import Image
anim_1 = Image.open(r"textures/water.png")
anim_1_txt = (r"textures/water_anim.txt")
print(anim_1.format)
print(anim_1.size)
print(anim_1.mode)
frame_rate = input("Enter a Frame Rate for water (default 2) - ")
anim_1_width = anim_1.size[0]
anim_1_length = anim_1.size[1]
anim_1_frame_length = ((anim_1_length)/(anim_1_width))
print ("Frame count is " + str(anim_1_frame_length))
with open (anim_1_txt, 'ab') as anim_:
for x in range(0, int(anim_1_frame_length)):
anim_.writelines(x)
print (("Writting Frame %d") % (x) + ('*') + (frame_rate))
TypeError: 'int' object is not iterable "anim_.writelines(x)"
我已经查看了此处解释如何执行此操作的其他问题;不过,我尝试的一切似乎都不起作用。我被告知要对字符串进行编码,但我不知道如何在循环中执行此操作。我用循环失败了很多次,我真的不使用它们。这使得编码对我来说真的很耗时。我还需要循环在文本文件的新行上打印每一帧,因为 示例:
1*2
2*2
2*3
...
【问题讨论】:
-
您能否提供比“似乎不起作用”更多的信息?错误信息?意外的输出?尽可能具体。
-
不清楚要写入文件的数据。您只打开一个图像文件,那么您要写入的这些多帧在哪里?你想如何将图像写入文本文件?您的代码失败,因为
x是一个数字而不是行列表,但我无法告诉您如何在不知道您想要做什么的情况下修复它。 -
@jomrsharpe 我在你编辑它之前做过。所以你应该已经看到了错误信息。 @ interjay anim_1_frame_length = ((anim_1_length)/(anim_1_width))
-
@interjay 我将帧数写入文件而不是图像本身。
-
请显示完整错误信息。
标签: python python-3.x for-loop pillow