将文本文件填充到数据库

时间:2017-07-07 17:53:52

标签: python django sqlite

我正在尝试从包含一堆单词的文本文件中逐行读取。 我尝试使用this问题的解决方案,但我无法做到。 这就是我设置models.py文件的方式:

from django.db import models
class words(models.Model):
    wordslist = models.CharField(null='True', max_length=128)

我尝试在python manage.py shell

中运行此代码
from app.models import words
WORDLIST_FILENAME = "app/words.txt"
inFile = open(WORDLIST_FILENAME, 'r')
wordlist = []
for line in inFile: 
    wordlist.append(line.strip().lower()) # wordlist: list of strings
    words.objects.create()

这不会最终完成,我必须键盘中断。我正在使用Django 1.11

1 个答案:

答案 0 :(得分:1)

这是一个使用words模型将文件存储在数据库中从文件中提取行的示例,该模型应该大写。

我会将此添加到模型中,因为您可能会在将来的某个时间使用更多文件。您可以获得文件路径列表并运行for循环,将文件路径传递给此函数以完成工作。

def lines_in_file_to_db(file_path):
    """ Handles reading lines from a file and saving to the Database.

    :param file_path: Path to where file is located.
    :type file_path: str
    """
    data = []

    with open(file_path) as file:
        for line in file:
            # do line manipulation in here...
            line = line.replace('\n', '')
            data.append(line)

    for line in data:
        words.objects.create(wordslist=line)