将while循环打印到文本文件

时间:2016-04-06 20:49:27

标签: python python-2.7 loops python-3.x while-loop

我在python中完成了这个。当我插入一个单词时,它会在一个数字之后重复 例如,如果我插入堆栈,它将打印:

stack 1
stack 2
stack 3
stack 4
stack 5
stack 6
stack 7
stack 8
stack 9

我希望那个python在文件文本中打印名称和数字。我搜索但没有找到任何东西。

代码:

pwd=raw_input("Enter a word:")
n=0
n=str(n)
print (pwd,n)
while n<9:
  out_file=open("tesxt.txt","w")
  n+=1
  out_file.write(pwd)
  out_file.write(n)
out_file.close()

我希望那个python写出从循环中生成的单词。 谢谢你的帮助

4 个答案:

答案 0 :(得分:0)

首先使用Python 2.7打印而不使用括号:

>>> print "hello world"
hello world

然后你应该在while循环之外打开文件。

out_file = open("test.txt", "w")
i = 0
while n < 9:
   # do something here  

out_file.close()

答案 1 :(得分:0)

您的问题在于重新定义n。您以n为整数(n = 0)开头,然后将其转换为字符串(n = str(n))。

试试这个:

pwd = raw_input("Enter a word: ")
n = 0
print("{} {}".format(pwd, n))
with open("test.txt", "w") as out:
    while n < 9:
        out.write("{} {}\n".format(pwd, n))
        n += 1

这应该会给你你期望的输出,因为你永远不会重新定义n。 如果你想同时兼容python 2和3,可以在脚本的顶部添加from __future__ import print_statement,这样你的print()调用就可以正常工作。

答案 2 :(得分:0)

您有一些错误:

  1. 您尝试在str对象上+ = 1。这是一个禁忌。
  2. 您可以多次打开文件而不关闭它。
  3. 尝试利用open内部使用while循环的上下文管理器。像这样:

    pwd = raw_input("Enter a word: ")
    with open("tesxt.txt", "w") as fout:
        n = 0
        while n <= 9:  # this will print 0-9. without the =, it will print 0-8
            data = "{} {}".format(pwd, n)
            print(data)
            fout.write("{}\n".format(data))
    

答案 3 :(得分:0)

pwd = raw_input('输入一个单词:')
n = 0
print pwd,n
用open('tesxt.txt','w')作为out_file:
而n < 9:
n + = 1
out_file.write('{} {} \ n'.format(pwd,n))