在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ File對(duì)象
編寫(xiě)自定義存儲(chǔ)系統(tǒng)
高級(jí)
編寫(xiě)你的第一個(gè)Django應(yīng)用,第5部分
視圖層
Django管理文檔生成器
編寫(xiě)你的第一個(gè) Django 程序 第3部分
編寫(xiě)你的第一個(gè)Django應(yīng)用,第6部分
模型層
中間件
測(cè)試
數(shù)據(jù)庫(kù)訪問(wèn)優(yōu)化
文件上傳
中間件
驗(yàn)證器
基于類(lèi)的內(nèi)建通用視圖
部署靜態(tài)文件
使用Django認(rèn)證系統(tǒng)
高級(jí)教程:如何編寫(xiě)可重用的應(yīng)用
Model 類(lèi)參考
Django 初探
使用Django輸出PDF
模型的實(shí)例
模型
文件上傳
進(jìn)行原始的sql查詢(xún)
面向程序員
中間件
編寫(xiě)數(shù)據(jù)庫(kù)遷移
TemplateResponse 和 SimpleTemplateResponse
異常
Django中的測(cè)試
基礎(chǔ)
管理器
File對(duì)象
URL調(diào)度器
加密簽名
國(guó)際化和本地化
日志
查詢(xún)集
django-admin 和 manage.py
使用基于類(lèi)的視圖處理表單
聚合
內(nèi)建基于類(lèi)的視圖的API
如何使用會(huì)話(huà)
部署 Django
其它
其它核心功能
高級(jí)
Django中的密碼管理
模型元選項(xiàng)
按需內(nèi)容處理
查找 API 參考
高級(jí)
Django 的快捷函數(shù)
Django 的設(shè)置
Admin
開(kāi)發(fā)過(guò)程
新手入門(mén)
基于類(lèi)的視圖
模型實(shí)例參考
信號(hào)
表單素材 ( <code>Media</code> 類(lèi))
自定義查找
常見(jiàn)的網(wǎng)站應(yīng)用工具
模型
django.contrib.humanize
Django模版語(yǔ)言
點(diǎn)擊劫持保護(hù)
管理操作
編寫(xiě)你的第一個(gè) Django 程序 第2部分
Django安全
模式編輯器
多數(shù)據(jù)庫(kù)
部署
基于類(lèi)的視圖
內(nèi)建的視圖
視圖裝飾器
面向設(shè)計(jì)師
編寫(xiě)視圖
應(yīng)用程序
如何使用WSGI 部署
參考
表單 API
文件儲(chǔ)存API
認(rèn)證
國(guó)際化和本地化
錯(cuò)誤報(bào)告
基礎(chǔ)
基礎(chǔ)
將遺留數(shù)據(jù)庫(kù)整合到Django
教程
Django異常
編寫(xiě)你的第一個(gè) Django 程序 第4部分
遷移
分頁(yè)
重定向應(yīng)用
表單
從零開(kāi)始
為模型提供初始數(shù)據(jù)
設(shè)置
使用Django輸出CSV
關(guān)聯(lián)對(duì)象參考
使用表單
Django 中的用戶(hù)認(rèn)證
快速安裝指南
安全問(wèn)題歸檔
數(shù)據(jù)庫(kù)函數(shù)
編寫(xiě)自定義的django-admin命令
高級(jí)教程
管理文件
格式本地化
基于類(lèi)的通用視圖 —— 索引
安全
系統(tǒng)檢查框架
為Django編寫(xiě)首個(gè)補(bǔ)丁
模板層
Widgets
編寫(xiě)你的第一個(gè) Django 程序 第1部分
執(zhí)行查詢(xún)

File對(duì)象

django.core.files模塊及其子模塊包含了一些用于基本文件處理的內(nèi)建類(lèi)。

File類(lèi)

class File(file_object)

File 類(lèi)是Python file 對(duì)象的一個(gè)簡(jiǎn)單封裝,并帶有Django特定的附加功能。需要表示文件的時(shí)候,Django內(nèi)部會(huì)使用這個(gè)類(lèi)。

File對(duì)象擁有下列屬性和方法:

name

含有MEDIA_ROOT相對(duì)路徑的文件名稱(chēng)。

size

文件的字節(jié)數(shù)。

file

這個(gè)類(lèi)所封裝的,原生的file 對(duì)象。

mode

文件的讀寫(xiě)模式。

open([mode=None])

打開(kāi)或者重新打開(kāi)文件(同時(shí)會(huì)執(zhí)行File.seek(0))。 mode參數(shù)的值和Python內(nèi)建的open()相同。

重新打開(kāi)一個(gè)文件時(shí),無(wú)論文件原先以什么模式打開(kāi),mode都會(huì)覆蓋;None的意思是以原先的模式重新打開(kāi)。

read([num_bytes=None])

讀取文件內(nèi)容??蛇x的size參數(shù)是要讀的字節(jié)數(shù);沒(méi)有指定的話(huà),文件會(huì)一直讀到結(jié)尾。

__iter__()

迭代整個(gè)文件,并且每次生成一行。

Changed in Django 1.8:

File現(xiàn)在使用[通用的換行符](https://www.python.org/dev/peps/pep-0278)。以下字符會(huì)識(shí)別為換行符:Unix換行符'\n',WIndows換行符'\r\n',以及Macintosh舊式換行符'\r'。

chunks([chunk_size=None])

迭代整個(gè)文件,并生成指定大小的一部分內(nèi)容。chunk_size默認(rèn)為64 KB。

處理大文件時(shí)這會(huì)非常有用,因?yàn)檫@樣可以把他們從磁盤(pán)中讀取出來(lái),而避免將整個(gè)文件存到內(nèi)存中。

multiple_chunks([chunk_size=None])

如果文件足夠大,需要按照提供的chunk_size切分成幾個(gè)部分來(lái)訪問(wèn)到所有內(nèi)容,則返回True 。

write([content])

將指定的內(nèi)容字符串寫(xiě)到文件。取決于底層的儲(chǔ)存系統(tǒng),寫(xiě)入的內(nèi)容在調(diào)用close()之前可能不會(huì)完全提交。

close()

關(guān)閉文件。

除了這些列出的方法,File暴露了 file 對(duì)象的以下屬性和方法:encoding, fileno, flush, isatty, newlines, read, readinto, readlines, seek, softspace, tell, truncate, writelines, xreadlines

ContentFile類(lèi)

class ContentFile(File)[source]

ContentFile類(lèi)繼承自File,但是并不像File那樣,它操作字符串的內(nèi)容(也支持字節(jié)集),而不是一個(gè)實(shí)際的文件。例如:

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類(lèi)

class ImageFile(file_object)[source]

Django特地為圖像提供了這個(gè)內(nèi)建類(lèi)。django.core.files.images.ImageFile繼承了 File的所有屬性和方法,并且額外提供了以下的屬性:

width

圖像的像素單位寬度。

height

圖像的像素單位高度。

附加到對(duì)象的文件的額外方法

任何關(guān)聯(lián)到一個(gè)對(duì)象(比如下面的Car.photo)的File都會(huì)有一些額外的方法:

File.save(name, content[, save=True])

以提供的文件名和內(nèi)容保存一個(gè)新文件。這樣不會(huì)替換已存在的文件,但是會(huì)創(chuàng)建新的文件,并且更新對(duì)象來(lái)指向它。如果saveTrue,模型的save()方法會(huì)在文件保存之后調(diào)用。這就是說(shuō),下面兩行:

>>> car.photo.save('myphoto.jpg', content, save=False)
>>> car.save()

等價(jià)于:

>>> car.photo.save('myphoto.jpg', content, save=True)

要注意content參數(shù)必須是File或者 File的子類(lèi)的實(shí)例,比如ContentFile。

File.delete([save=True])

從模型實(shí)例中移除文件,并且刪除內(nèi)部的文件。如果saveTrue,模型的save() 方法會(huì)在文件刪除之后調(diào)用。

譯者:Django 文檔協(xié)作翻譯小組,原文:File objects。

本文以 CC BY-NC-SA 3.0 協(xié)議發(fā)布,轉(zhuǎn)載請(qǐng)保留作者署名和文章出處。

Django 文檔協(xié)作翻譯小組人手緊缺,有興趣的朋友可以加入我們,完全公益性質(zhì)。交流群:467338606。

上一篇:異常下一篇:如何使用WSGI 部署