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()