Предоставьте исходные данные для моделей Django из txt-файла

У меня есть файл .txt с 3 колонками (долгота, широта, расстояние) и 40 миллионами строк.
Это первые строки файла.

-179.98 89.98   712.935
-179.94 89.98   712.934
-179.9  89.98   712.933
-179.86 89.98   712.932
-179.82 89.98   712.932
-179.78 89.98   712.931
-179.74 89.98   712.93
-179.7  89.98   712.929
-179.66 89.98   712.928
-179.62 89.98   712.927

Есть ли способ предоставить эти 40 миллионов строк в качестве исходных данных для этой модели Django?

from django.db import models

class Location(models.Model):

    longitude = models.FloatField()
    latitude = models.FloatField()
    distance = models.FloatField()

Это полностью непроверенный код, но вы можете попробовать что-то вроде:

import os
from your_app.models import Location

with open('path/to/your_text_file.txt') as file:
    data = file.readlines()
    for line in data:
        coords_and_dist = line.split(' ')
        try:
           Location.objects.create(longitude=float(coords_and_dist[0]),
                                   latitude=float(coords_and_dist[1]),
                                   distance=float(coords_and_dist[2])
        except:
            pass

Вы можете столкнуться с некоторыми проблемами производительности и памяти при 40 миллионах строк, я не запускал что-то подобное на текстовом файле такого размера.

Вернуться на верх