我正在尝试编写一个可以创建文件的程序,一个文件应该如下所示:
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()
答案 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