Django4.0 管理文件-File对象
在内部,Django 在任何需要表示文件的时候使用 django.core.files.File
大部分情况下你只需要使用 Django 提供的 File
如果你需要自己构建 File ,最简单的方法是使用 Python 内置的 file 对象创建一个:
>>> from django.core.files import File
# Create a Python file object using open()
>>> f = open('/path/to/hello.world', 'w')
>>> myfile = File(f)
现在你可以使用 File 类的任何属性和方法。
注意在这里创建的文件不会自动关闭。下面的方式可以用来自动关闭文件:
>>> from django.core.files import File
# Create a Python file object using open() and the with statement
>>> with open('/path/to/hello.world', 'w') as f:
... myfile = File(f)
... myfile.write('Hello World')
...
>>> myfile.closed
True
>>> f.closed
True
在对大量对象进行循环访问文件字段时,关闭文件尤为重要。如果文件在访问后不能手动关闭,可能会出现文件描述符溢出的风险。
OSError: [Errno 24] Too many open files