2

我正在尝试编写一个从数字 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 的方法,请发布!

4

2 回答 2

3

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

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

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

于 2013-08-13T09:30:55.333 回答
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() after 会调用错误

于 2013-08-13T21:07:14.030 回答