Python 将循环打印到文本文件中?
我正在尝试编写一个代码,将歌曲“十个绿色瓶子”打印到一个文本文件中,该文件将查找并打开一个名为“十个绿色瓶子”的记事本文件。虽然我在打开和打印文本文件时遇到了一些重大问题,但我需要帮助才能做到这一点。如果您能帮助解决此问题,我将不胜感激:Python 将循环打印到文本文件中?,python,text,notepad,Python,Text,Notepad,我正在尝试编写一个代码,将歌曲“十个绿色瓶子”打印到一个文本文件中,该文件将查找并打开一个名为“十个绿色瓶子”的记事本文件。虽然我在打开和打印文本文件时遇到了一些重大问题,但我需要帮助才能做到这一点。如果您能帮助解决此问题,我将不胜感激: StringList = ['Ten ','Nine ','Eight ','Seven ','Six ','Five ','Four ','Three ','Two ','One '] StringList2 = ['ten','nine ','eight
StringList = ['Ten ','Nine ','Eight ','Seven ','Six ','Five ','Four ','Three ','Two ','One ']
StringList2 = ['ten','nine ','eight ','seven ','six ','five ','four ','three ','two ', 'one ','no ']
string1 = ("green bottle \nHanging on the wall\n")
string2 = ("green bottle\nHanging on the wall\nAnd if one green bottle")
string3 = ("\nShould accidently fall\nThere'll be ")
string4 = ("green bottles \nHanging on the wall \n")
string5 = ("green bottles\nHanging on the wall\nAnd if one green bottle")
string6 = ("green bottle\nHanging on the wall\n")
def loopingverse():
verse1 =''
for x in range (0 , 10):
if x > 8: verse1 = verse1 + (StringList[x] + string1 + StringList[x] + string2+string3 + StringList2[x + 1] + string4 + "\n")
if x == 8: verse1 = verse1 + (StringList[x] + string4 + StringList[x] + string5 + string3 + StringList2[x + 1] + string6 + "\n")
if x < 8: verse1 = verse1 + (StringList[x] + string4 + StringList[x] + string5+string3 + StringList2[x + 1] + string4 + "\n")
在如何实现您的目标方面提供了很大的帮助
您的最终产品应如下所示:
... String lists here
... Strings here
with open("myfile.txt","w") as f:
for i in MyStrings:
f.write(i)
好的,这是一个真正有效的方法
StringList = ['Ten ', 'Nine ', 'Eight ', 'Seven ', 'Six ', 'Five ', 'Four ', 'Three ', 'Two ', 'One ']
StringList2 = ['ten', 'nine ', 'eight ', 'seven ', 'six ', 'five ', 'four ', 'three ', 'two ', 'one ', 'no ']
string1 = ("green bottle \nHanging on the wall\n")
string2 = ("green bottle\nHanging on the wall\nAnd if one green bottle")
string3 = ("\nShould accidently fall\nThere'll be ")
string4 = ("green bottles \nHanging on the wall \n")
string5 = ("green bottles\nHanging on the wall\nAnd if one green bottle")
string6 = ("green bottle\nHanging on the wall\n")
def loopingverse():
verse1 = ''
for x in range (0 , 10):
if x > 8:
verse1 = verse1 + (StringList[x] + string1 + StringList[x] + string2 + string3 + StringList2[x + 1] + string4 + "\n")
if x == 8:
verse1 = verse1 + (StringList[x] + string4 + StringList[x] + string5 + string3 + StringList2[x + 1] + string6 + "\n")
if x < 8:
verse1 = verse1 + (StringList[x] + string4 + StringList[x] + string5 + string3 + StringList2[x + 1] + string4 + "\n")
with open('file.txt', 'w') as wr:
#write the verse to the file
wr.write(verse1)
print("Done")
#launch the application
if __name__ == '__main__':
loopingverse()
StringList=['10'、'9'、'8'、'7'、'6'、'5'、'4'、'3'、'2'、'1']
StringList2=[“十”、“九”、“八”、“七”、“六”、“五”、“四”、“三”、“二”、“一”、“否”]
string1=(“绿色瓶子\n挂在墙上\n”)
string2=(“绿色瓶子\n挂在墙上\n如果有一个绿色瓶子)
string3=(“\n将意外坠落\n此处将有”)
string4=(“绿色瓶子\n挂在墙上\n”)
string5=(“绿色瓶子\n挂在墙上\n如果有一个绿色瓶子)
string6=(“绿色瓶子\n挂在墙上\n”)
def loopingverse():
第1节=“”
对于范围(0,10)内的x:
如果x>8:
verse1=verse1+(StringList[x]+string1+StringList[x]+string2+string3+StringList2[x+1]+string4+“\n”)
如果x==8:
verse1=verse1+(StringList[x]+string4+StringList[x]+string5+string3+StringList2[x+1]+string6+“\n”)
如果x<8:
verse1=verse1+(StringList[x]+string4+StringList[x]+string5+string3+StringList2[x+1]+string4+“\n”)
打开('file.txt','w')作为wr:
#把这首诗写在档案里
wr.write(第1节)
打印(“完成”)
#启动应用程序
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
循环体()
祝你好运 为什么你要用文件打开记事本而不是用open(“foo.txt”,“wb”)fo.write(sometext);我确信这是正确的,但直到我无法使它工作,并确切地把额外的代码,我已经尝试了每一件事,但它只是没有打印到文本文件。我在这方面非常糟糕。如果您能评论整个工作代码“更好”,我将不胜感激。您应该使用
和上下文管理器来处理文件,它为您处理关闭。@jonrsharpe请告诉我我的答案有什么问题。。。我希望你不要把英语带到别的学校level@OluDoug不,你的语言没问题(虽然我不认为答案应该是“伙计”)。我的观点是,您声明使用myfile=open(…)。。。myfile.close()
优于将open(…)作为myfile:
的,这是错误的<从2.6开始,首选使用带
的代码>(the),并且不要求您显式地关闭
(当您退出带
的块时会发生这种情况)。因此,你的答案是别人的一半,一半是错的。这不是我的意思,我实际上想说的是,选项2是无论如何,没关系,我只是编辑了答案,谢谢你对英语的提醒
StringList = ['Ten ', 'Nine ', 'Eight ', 'Seven ', 'Six ', 'Five ', 'Four ', 'Three ', 'Two ', 'One ']
StringList2 = ['ten', 'nine ', 'eight ', 'seven ', 'six ', 'five ', 'four ', 'three ', 'two ', 'one ', 'no ']
string1 = ("green bottle \nHanging on the wall\n")
string2 = ("green bottle\nHanging on the wall\nAnd if one green bottle")
string3 = ("\nShould accidently fall\nThere'll be ")
string4 = ("green bottles \nHanging on the wall \n")
string5 = ("green bottles\nHanging on the wall\nAnd if one green bottle")
string6 = ("green bottle\nHanging on the wall\n")
def loopingverse():
verse1 = ''
for x in range (0 , 10):
if x > 8:
verse1 = verse1 + (StringList[x] + string1 + StringList[x] + string2 + string3 + StringList2[x + 1] + string4 + "\n")
if x == 8:
verse1 = verse1 + (StringList[x] + string4 + StringList[x] + string5 + string3 + StringList2[x + 1] + string6 + "\n")
if x < 8:
verse1 = verse1 + (StringList[x] + string4 + StringList[x] + string5 + string3 + StringList2[x + 1] + string4 + "\n")
with open('file.txt', 'w') as wr:
#write the verse to the file
wr.write(verse1)
print("Done")
#launch the application
if __name__ == '__main__':
loopingverse()