Python3- 将循环输出写入文件
Python3- Writing for loop output to file
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
...
此错误可能是因为您将 int
赋给了 writelines()
。
将其转换为字符串。
for x in range(0, int(anim_1_frame_length)):
anim_.writelines(str(x))
至于问题的第二部分,您可以在打印的字符串中使用 \n
。由于我不确定您的 "frame" 是哪个变量,因此我将在下面的代码中将其命名为 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)
请注意,如果 my_frame
不是字符串,则必须使用 str(my_frame)
。
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
...
此错误可能是因为您将 int
赋给了 writelines()
。
将其转换为字符串。
for x in range(0, int(anim_1_frame_length)):
anim_.writelines(str(x))
至于问题的第二部分,您可以在打印的字符串中使用 \n
。由于我不确定您的 "frame" 是哪个变量,因此我将在下面的代码中将其命名为 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)
请注意,如果 my_frame
不是字符串,则必须使用 str(my_frame)
。