Python3-编写循环输出到文件

时间:2015-02-01 14:54:29

标签: python python-3.x for-loop pillow

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
...

1 个答案:

答案 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