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
...
答案 0 :(得分:1)
此错误可能是因为您向int
提供writelines()
。
将其转换为字符串。
for x in range(0, int(anim_1_frame_length)):
anim_.writelines(str(x))
至于问题的第二部分,您可以在打印的字符串中使用\n
。因为我不确定你的"框架"是的,我将在下面的代码中将其命名为my_frame
。
for x in range(0, int(anim_1_frame_length)):
anim_.writelines(str(x))
# Use str(my_frame) if needed
print('\n' + my_frame + '*' + my_frame)
请注意,如果str(my_frame)
不是字符串,则必须使用my_frame
。