【发布时间】:2010-07-20 20:10:45
【问题描述】:
我有一个 Django 应用程序,它打开一个文件,不断读取它,同时将数据写入 Postgres 数据库。我的问题是,每当我打开一个文件时,
file = open(filename, 'r')
我也无法在数据库中创建新事物,
Message.objects.create_message(sys, msg)
这应该创建一个包含两个字符串的数据库条目。但是,似乎什么都没有发生,并且我没有出现任何错误:(如果我决定关闭文件file.close(),在我写入数据库之前一切都很好。我的问题是我需要打开该文件来创建我的对象. 有人对此有解决方案吗?谢谢。
编辑
这是我的更多代码。基本上我在文件末尾有以下sn-p,然后在获取信息时写入数据库。
file.seek(0,2)
while True:
line = file.readline()
if not line:
time.sleep(1)
continue
Message.objects.create_message(sys, line)
编辑 2
终于让它工作了,但我不知道为什么。我很想知道为什么会这样:
str1ng = line[0:len(line)-1]
Message.objects.create_message(sys, str1ng)
该字符串与从 file.readline() 收集的字符串之间存在一些差异。 有什么想法吗?
【问题讨论】:
-
您应该发布更多代码。从这些 sn-ps 无法判断发生了什么。
-
这听起来像是通过文件本身进行消息传递的想法是什么让你在这里遇到麻烦。你能从以另一种方式写入文件的人那里获得 io 流吗?重新命名文件怎么样,使用该副本直到完成,然后清洗冲洗重复。?
标签: python database django file file-io