Проблема в вашем коде связана с тем, что вы используете функцию `range()` для итерации по числам от 1 до 1001, но при этом значение квадрата и куба считается для чисел от 1 до 1000. Это приводит к тому, что в файл записываются только значения до 810.
Чтобы исправить это, вам нужно изменить количество итераций в цикле `for` на 1001, а не 1000. Также, у вас ошибка в строке записи в файл, вы должны использовать комбинацию методов `.write()` и `.format()`, чтобы записать значения квадрата и куба разных чисел в одну строку.
Пример исправленного кода:
```python
with open('numbers.txt', 'w') as file:
for num in range(1, 1001):
square = num ** 2
cube = num ** 3
file.write("{},{},{}\n".format(num, square, cube))
```
Теперь этот код будет записывать числа от 1 до 1000, их квадраты и кубы в файл `numbers.txt`.