为什么我不能将range()的输出输出到文件?

时间:2012-11-27 23:48:09

标签: python file-io

for x in range(6):
  why = str(x+1)
  outf.write(why)

其中outf是文件

给了我:

why = str(x+1)
TypeError: expected a character buffer object

4 个答案:

答案 0 :(得分:1)

我不相信你已经发布了你正在运行的代码,但还有其他方法来编写它以避免明确调用str和+ 1'(假设每行有一个数字)和2.x):

for i in xrange(1, 7): # save the +1
    print >> fout, i 

fout.writelines('{}\n'.format(i) for i in xrange(1, 7))

from itertools import islice, count
fout.writelines('{}\n'.format(i) for i in islice(count(1), 6))

答案 1 :(得分:0)

适合我(在ipython,python 2.7中):

In [1]: outf = open('/tmp/t', 'w')

In [2]: for x in range(6):
   ...:     why = str(x+1)
   ...:     outf.write(why)

In [3]: outf.close()

档案内容:123456

你使用的是哪个python版本?

答案 2 :(得分:0)

这对我有用

outf = open('/temp/workfile', 'w')
for x in range(6):
    why = str(x+1)
    outf.write(why)
outf.flush()
outf.close()

/temp/workfile包含123456

答案 3 :(得分:0)

假设您不熟悉Python ......

new_File = open('mynewfile.txt', 'wr')
for x in range(6):
    new_File.write(str(x)+'\n')

new_File.close()

将输出到名为“mynewfile.txt”的文件,如下所示:

0 
1 
2
3
4
5

就你粘贴的代码而言,还有一些你不会告诉我们的事情......这很好用。

for x in range(6):
  why = str(x+1)
  print why

1
2
3
4
5
6