程序将所有可被99整除的数字写入文本文件不起作用?

时间:2013-08-13 09:29:32

标签: python python-3.x division

我正在尝试编写一个从数字99开始的简单程序,并将所有99的倍数但低于1000000000写入一个名为“Blank.txt”的文本文件,这是我的代码:

f = open('Blank.txt')
a = 99
while a <= 1000000000:
   f.read()
   a = str(a)
   f.write(a)
   a = int(a)
   a = a * 2

f.close()

一个问题..出于某种原因,我无法写入文本文件?请帮助我能够将99的倍数写入此文本文件。顺便说一句,如果你有其他方法使用Python,请发布它!

2 个答案:

答案 0 :(得分:3)

您需要以写入('w')模式打开文件:

with open('blank.txt', 'w') as f:
   for num in range(99, 1000000001, 99):
       #do something here.

请注意,现在无需关闭文件,with语句会自动为您执行此操作。

答案 1 :(得分:1)

就像前面提到的答案所说的那样,当你第一次打开文件时,你会使用“w”来识别你想要写入文件的内容;但是,您可以而且应该添加一个w +,因为这样您就可以读取您写入文件的内容 - 这是合理的,这样您就可以检查结果是否符合您的预期。 因此,这节省了时间,因为关闭程序并再次打开它然后从中读取会占用更多空间,因此在更大规模上,代码需要更长时间才能读取,如果出现任何错误,可能需要更长时间进行调试 所以它应该是这样的:

                  f = open('Blank.txt', "w+")

                  a = 99

                  while a <= 1000000000:
                  f.read()

                  a = str(a)
                  f.write(a)
                  a = int(a)
                  a = a * 2

                  f.close()

另外,在您的初始代码中,您会以任何方式生成错误,因为当您打开文件时,您没有告诉它从中读取“r”或“r +”或“w +”,所以把f.read()放在后面就会调用错误