Если вы хотите pythonic зашифрованный код, вы можете сделать это в 2 * 2 строки (+1 строка импорта):
import random
# create file
with open("t.txt","w") as nf:
nf.write( '\n'.join(map(str,random.choices(range(1,501),
k=int(input("How many numbers?"))))))
Первая использует введенное значение,делает его целым, использует его как параметр «сколько» для random.choices () , который возвращает столько же случайных чисел из заданного диапазона (1,501) , которые затем передаются в map () , чтобы сделать их строками, так что join () может сделать из них большую строку, которая затем будет записана в файл.
# read / sum file
with open("t.txt","r") as nf:
print(sum(map(int,(x.strip() for x in nf.readlines() if x.strip()) ) ) )
Это читает всефайл в виде списка строк, вырезает новые строки, преобразует их в целые и суммирует их.(см. Встроенные функции Doku для int, map, sum )
Вывод сгенерированного материала:
with open("t.txt","r") as nf:
print(nf.read())
Sum:
2371
Выходной файл:
320
13
138
112
369
339
447
44
211
15
110
253