【发布时间】:2017-07-07 17:53:51
【问题描述】:
我正在尝试逐行读取包含一堆单词的文本文件。
我尝试使用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
【问题讨论】:
-
文件有多大?此外,您没有使用
close或隐式with open file()明确关闭(或者您没有发布)文件,您的内存泄漏。如果文件很大,您可能会创建一个庞大的数组。 -
补充我之前所说的......你的
words.objects.create()也没有做任何有用的事情,你没有将数据传递给 create 函数。您提供的链接为您提供了Representative.objects.create(**dict(zip(fields, row)))的示例 -
文件大小为633KB,我使用
words.objects.create(wordslist=line)和with open(file_path) -
所以绝对不是内存。您能否提供文本文件的示例,以便我们可以在本地运行并重现问题。
-
我让它停止无限循环,但是当我调用
Words.objects.all()时返回<QuerySet [<Words: Words object>, ...]而不是实际的单词text file is in problem set 3