Python-Django-“InMemoryUploadedFile”对象没有“split”属性

2024-04-18 22:49:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我让用户上传一个txt文件,然后提交它,这样我就可以在我的一个视图中对该文件做一些工作。

我在这方面有一些问题,但在社区的帮助下,现在至少认识到了我的形式中的POST方法。

正在发生的是我的观点在读取文件时失败了。这是我调试我的视图:

enter image description here

如您所见,do some_work方法检查POST方法,如果是请求附带的文件,则是一个TXT文件,然后分割该文件中的行。

这不管用。当我到达那条线时,我得到:

'InMemoryUploadedFile' object has no attribute 'split'

所以我不知道怎么了。

这是我的表格:

<form  action="{% url "do_some_work" %}" method="POST" enctype="multipart/form-data">
    {% csrf_token %}
    <div class="form-group">
        <label for="exampleInputFile">File input</label>
        <input type="file" id="exampleInputFile" name="some_file">
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
</form>

我会感谢你的帮助。如果你需要更多的信息请告诉我 谢谢。


Tags: 文件方法divform视图inputtypesome
1条回答
网友
1楼 · 发布于 2024-04-18 22:49:19

您正在尝试拆分文件对象。只能拆分文件的内容。与纯字符串相比,文件对象具有不同的读取和操作其内容的方法。

InMemoryUploadedFile充当Python的file对象的代理。要获取单个行的列表,可以使用^{}方法:

lines = data.readlines()

如果只需要遍历各个行,可以遍历文件对象本身:

for line in data:
    # do something with line

相关问题 更多 >