django 1.8 官方文档翻译: 3-3-2 File对象

杏奴
• 阅读 1899

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])

以提供的文件名和内容保存一个新文件。这样不会替换已存在的文件,但是会创建新的文件,并且更新对象来指向它。如果saveTrue,模型的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])

从模型实例中移除文件,并且删除内部的文件。如果saveTrue,模型的save() 方法会在文件删除之后调用。

译者:Django 文档协作翻译小组,原文:File objects

本文以 CC BY-NC-SA 3.0 协议发布,转载请保留作者署名和文章出处。

Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606。

点赞
收藏
评论区
推荐文章
半臻 半臻
4年前
Python基础8——文件操作
16文件操作16.1文件操作的基本概念文件操作的步骤1.打开文件2.读、写文件3.关闭文件open函数,创建一个file对象,默认是以只读的方式打开read方法:一次性读取文件的所有内容write方法:将指定内容写入文件close方法:关闭文件file对象的属性flie.name文件的名称file.mode文件的访问模式file.closed
Wesley13 Wesley13
4年前
java.IO.File类详解
JDK1.0就存在的File类:用于对文件进行一般性操作。由于NIO中有对File对象进行改善,现在对其进行一般性说明。File类有四个构造函数:(都必须传入路径地址String或者Path)  File(Stringpathname)  File(Fileparent,Stringchild)  File(Stringpa
Wesley13 Wesley13
4年前
javase IO
File类,用来表示一个文件或者一个文件夹,通过File类的对象来对文件夹的名字,路径,大小等等访问,但是不可以直接访问文件内的数据构造newFile(Stringurl)指定路径newFile(StringparentUrl,Stringurl)指定父路径,当前文件newFile(Fileparent,
虾米大王 虾米大王
3年前
java代码092
code092.jsp通过FindServlet类查询分页数据所有图书信息ID图书名称价格数量作者<%Listlist1(List)request.getAttribute("list");for(code089book:list1)%
虾米大王 虾米大王
3年前
java代码012
code012.jspInserttitlehere<%JSP内置对象1.request用于处理HTTP请求中的各项参数。如,删除可以通过request对象的getParameter()方法获取如,request.getParameter("id")在请求转发时,需要把一些数据传递到转发后的页面处理。就需要用到request的se
Stella981 Stella981
4年前
Spring 源码深度解析笔记
1.核心容器Core模块:主要包括Spring框架基本的核心工具类,其他模块都要基于该模块。Beans模块:包含访问配置文件、创建和管理bean以及进行IoC/DI操作相关的类。Context模块:构建于Core和Beans模块之上,提供了一种类似JNDI注册器的框架式的对象访问方法。Context模块
Wesley13 Wesley13
4年前
Java中使用File类删除文件夹和文件
删除工具类:importjava.io.File;publicclassDeleteAll{publicstaticvoiddeleteAll(Filefile){if(file.isFile()||file.list().length0){
Stella981 Stella981
4年前
File类方法小结
File类的方法中,除构造函数外,常用方法的几个用处:1.创建文件、目录,删除文件、目录;2.获取及设置文件属性。3\.搜索文件列表4.……还能获取分区信息?构造方法:构造方法摘要File(http://my.oschina.net/u/java/io/File.htmlFile(java.io.File,j
Wesley13 Wesley13
4年前
Java 日期与时间
Java的日期Java没有内置的日期类,但可以导入java.time包,这个包中包含了许多类,可用于处理日期和时间。例如:<table<tbody<tr<thstyle"width:25%"Java类</th<thstyle"width:75%"描述</th</tr<tr<td<code
Stella981 Stella981
4年前
File的几个常用方法
1.FilefilenewFile(Stringpath);只是创建文件对象2.file.exists();文件是否存在3.file.isDirectory();判断文件对象是否是文件夹4.String\\listfile.list();返回文件列表,文件夹名字或者文件名(包括后缀名)5.File.sep
小万哥 小万哥
1年前
Java 文件处理完全指南:创建、读取、写入和删除文件详细解析
Java文件操作文件处理简介文件处理是任何应用程序的重要部分。Java提供了许多用于创建、读取、更新和删除文件的方法。Java文件处理Java中的文件处理主要通过java.io包中的File类完成。该类允许我们处理文件,包括创建、读取、写入和删除文件。创建
杏奴
杏奴
Lv1
海边的日落就是这么优雅,这么精彩!
文章
11
粉丝
0
获赞
0