Python创建文件并添加数字

时间:2014-11-06 22:27:16

标签: python for-loop file-io

我正在尝试编写一个可以创建文件的程序,一个文件应该如下所示:

1

19

下一个文件

2

18

3

17

等...

所以直到19在第一行,1在第二行,几乎我将第1行从1递增到19并将第二行从19递减到1.我有这个代码创建文件和写第一个号码但不是最后一个,请问有什么建议吗?

 for x in range(1,19):
       file = open("test%x"%x, 'w')
       file.write('%x'%x)
       for x in range(19,1):
           file = open("test%x"%x, 'a')
           file.write('%x'%x)
       file.close()

3 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

for x in range(1,20):
   f = open("test"+str(x), 'w')
   f.write(str(x) + "\n" + str(20-x))
   f.close()

答案 1 :(得分:1)

这样的事情应该有效:

num = 19
for x in range(1, num+1):
    with open file(''.join(['file_',
                            str(x),
                            '.txt'], 'w') as the_file:
        file.write(''.join([str(x),
                            '\n',
                            str(num-x+1)])

答案 2 :(得分:0)

您正在使用具有相同fileObject名称的两个文件而不关闭第一个文件。那是一个问题。为什么要重新打开它?如果你想制作19个文件,只需写下你需要的东西,关闭它,继续前进。

其次,请记住range()函数中的第二个参数是上限/上限。这是一个范围将增长以满足但从未实际实现的价值。所以如果你想要1-19,你的范围必须是1-20。

 num = 19
 for x in range(1,20):
       filename = "test%d.txt" % (x)
       writeFile = open(filename, 'w')
       writeFile.write("%d" % (num))
       writeFile.close()
       num -= 1