Python写入和读取随机数到文件

Leg*_*t99 1 python list read-write

我正在编写一个 Python 代码来将随机文件写入文件并从文件中读取相同的数字并将它们放入一个 int 列表中

import random
import datetime

w = open("test.txt", "w")
for n in range(0,2):
    w.write(str(random.randint(0,10000)))
    w.write(",")
w.write(str(random.randint(0,10000)))

f = open("test.txt", "r")
myArray = f.read().split(',')
for i in range (0,len(myArray)):
    myArray[i] = int(myArray[i])

print(myArray)
Run Code Online (Sandbox Code Playgroud)

但是当我运行代码时,我收到错误提示

Traceback (most recent call last):                                                                                                             
  File "main.py", line 13, in <module>                                                                                                         
    myArray[i] = int(myArray[i])                                                                                                               
ValueError: invalid literal for int() with base 10: '' 
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?有没有其他方法可以将随机数写入文件然后将它们放入列表?

And*_*ely 5

错误是,您在写入文件后没有关闭文件。所以什么都没有写。一种解决方案是使用with自动关闭文件的上下文管理器(关键字):

import random
import datetime

with open("test.txt", "w") as w:
    for n in range(0, 2):
        w.write(str(random.randint(0, 10000)))
        w.write(",")
    w.write(str(random.randint(0, 10000)))

with open("test.txt", "r") as f:
    myArray = f.read().split(",")

for i in range(0, len(myArray)):
    myArray[i] = int(myArray[i])

print(myArray)
Run Code Online (Sandbox Code Playgroud)

印刷:

[3998, 6615, 7496]
Run Code Online (Sandbox Code Playgroud)