我需要处理具有.txt
结构的.csv
文件,并将其作为字段存储在数据库中。应用程序的主要功能是处理此文件并生成输出。
每隔一段时间我就需要上传新版本但保留旧版本的记录。这些是微小的文件,很少超过300kb
。我还需要包含上传者名称,日期,版本等的其他字段,这就是我将其作为记录保存在数据库而不是本地文件中的原因。
文件记录存储在类型为models.FileField()
如何将此记录作为字段而不是文件对象进行访问,并像通常.txt
一样打开它?
我尝试了但是它没有工作:
listofschedules = ScheduleFile.objects.all
file = listofschedules[0].csvSchedule
with open(file, 'rt', encoding='windows 1250') as csv_input:
reader = csv.reader(csv_input, delimiter=';')
print(reader) ...
答案 0 :(得分:2)
您需要致电all
,然后使用文件path
,如the documentation中所示。或者,对于这个简单的测试,您可以使用first
:
file = ScheduleFile.objects.first().csvSchedule
with open(file.path, 'rt', encoding='windows 1250') as csv_input:
reader = csv.reader(csv_input, delimiter=';')
print(reader)