django 1.8 官方文档翻译: 3-3-2 File对象
2015-09-04 09:26
411 查看
File对象
django.core.files模块及其子模块包含了一些用于基本文件处理的内建类。
File类
class File(file_object)
File类是Python file 对象的一个简单封装,并带有Django特定的附加功能。需要表示文件的时候,Django内部会使用这个类。
File对象拥有下列属性和方法:
name
含有
MEDIA_ROOT相对路径的文件名称。
size
文件的字节数。
file
这个类所封装的,原生的file 对象。
mode
文件的读写模式。
open([mode=None])
打开或者重新打开文件(同时会执行
File.seek(0))。
mode参数的值和Python内建的
open()相同。
重新打开一个文件时,无论文件原先以什么模式打开,
mode都会覆盖;
None的意思是以原先的模式重新打开。
read([num_bytes=None])
读取文件内容。可选的
size参数是要读的字节数;没有指定的话,文件会一直读到结尾。
__iter__()
迭代整个文件,并且每次生成一行。
Changed in Django 1.8: File现在使用[通用的换行符](https://www.python.org/dev/peps/pep-0278)。以下字符会识别为换行符:Unix换行符'\n',WIndows换行符'\r\n',以及Macintosh旧式换行符'\r'。
chunks([chunk_size=None])
迭代整个文件,并生成指定大小的一部分内容。
chunk_size默认为64 KB。
处理大文件时这会非常有用,因为这样可以把他们从磁盘中读取出来,而避免将整个文件存到内存中。
multiple_chunks([chunk_size=None])
如果文件足够大,需要按照提供的
chunk_size切分成几个部分来访问到所有内容,则返回
True。
write([content])
将指定的内容字符串写到文件。取决于底层的储存系统,写入的内容在调用
close()之前可能不会完全提交。
close()
关闭文件。
除了这些列出的方法,
File暴露了
file对象的以下属性和方法:
encoding,
fileno,
flush,
isatty,
newlines,
read,
readinto,
readlines,
seek,
softspace,
tell,
truncate,
writelines,
xreadlines。
ContentFile类
class ContentFile(File)[source]
ContentFile类继承自
File,但是并不像
File那样,它操作字符串的内容(也支持字节集),而不是一个实际的文件。例如:
from __future__ import unicode_literals from django.core.files.base import ContentFile f1 = ContentFile("esta sentencia está en español") f2 = ContentFile(b"these are bytes")
ImageFile类
class ImageFile(file_object)[source]
Django特地为图像提供了这个内建类。
django.core.files.images.ImageFile继承了
File的所有属性和方法,并且额外提供了以下的属性:
width
图像的像素单位宽度。
height
图像的像素单位高度。
附加到对象的文件的额外方法
任何关联到一个对象(比如下面的Car.photo)的
File都会有一些额外的方法:
File.save(name, content[, save=True])
以提供的文件名和内容保存一个新文件。这样不会替换已存在的文件,但是会创建新的文件,并且更新对象来指向它。如果
save为
True,模型的
save()方法会在文件保存之后调用。这就是说,下面两行:
>>> car.photo.save('myphoto.jpg', content, save=False) >>> car.save()
等价于:
>>> car.photo.save('myphoto.jpg', content, save=True)
要注意
content参数必须是
File或者
File的子类的实例,比如
ContentFile。
File.delete([save=True])
从模型实例中移除文件,并且删除内部的文件。如果
save是
True,模型的
save()方法会在文件删除之后调用。
译者:Django 文档协作翻译小组,原文:File objects。
本文以 CC BY-NC-SA 3.0 协议发布,转载请保留作者署名和文章出处。
Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606。
相关文章推荐
- GO语言学习笔记3(函数接口并发)
- GO语言学习笔记2(指针数组MAP)
- poj 1179 Polygon
- go (golang) DNS域名解析实现
- 第二章 概述
- POJ 1003 Hangover
- 访问google的一些方法
- mongo 常用的命令
- 谷歌Logo的变迁之路:从课后作业级走向世界级
- 运用Polygon类绘制六边形
- <转>四个重要属性——Action、Data、Category、Extras
- 【英语】Bingo口语笔记(63) - 一个单词的多种发音
- 【英语】Bingo口语笔记(62) - 生气道歉场景的表达
- Goods:图书模块按分类查询各层实现
- 第三方Windows To Go工具Rufus下载:把Win10操作系统装进U盘
- Django的CSRF保护引起的403 FORBIDDEN
- go mode
- 用了17年的Google Logo大改了
- morose things go by
- django 1.8 官方文档翻译: 3-3-1 文件上传