pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

在 Python 文件對(duì)象上使用迭代器時(shí)是否需要 clos

Is close() necessary when using iterator on a Python file object(在 Python 文件對(duì)象上使用迭代器時(shí)是否需要 close())
本文介紹了在 Python 文件對(duì)象上使用迭代器時(shí)是否需要 close()的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

問(wèn)題描述

執(zhí)行以下操作并且顯式處理文件對(duì)象并調(diào)用其 close() 方法是不好的做法嗎?

Is it bad practice to do the following and not explicitly handle a file object and call its close() method?

for line in open('hello.txt'):
    print line

注意 - 這適用于還沒(méi)有 with 語(yǔ)句的 Python 版本.

NB - this is for versions of Python that do not yet have the with statement.

我問(wèn),因?yàn)?Python 文檔似乎建議這樣做:-

I ask as the Python documentation seems to recommend this :-

f = open("hello.txt")
try:
    for line in f:
        print line
finally:
    f.close()

這似乎比必要的更冗長(zhǎng).

Which seems more verbose than necessary.

推薦答案

在處理文件時(shí),總是必須關(guān)閉,不要讓打開(kāi)的文件句柄到處都是.當(dāng)文件對(duì)象被垃圾回收時(shí),它們最終將被關(guān)閉,但您不知道何時(shí)會(huì)關(guān)閉,同時(shí)您將通過(guò)持有不再需要的文件句柄來(lái)浪費(fèi)系統(tǒng)資源.

Close is always necessary when dealing with files, it is not a good idea to leave open file handles all over the place. They will eventually be closed when the file object is garbage collected but you do not know when that will be and in the mean time you will be wasting system resources by holding to file handles you no longer need.

如果您使用的是 Python 2.5 及更高版本,則可以使用 with 語(yǔ)句自動(dòng)為您調(diào)用 close():

If you are using Python 2.5 and higher the close() can be called for you automatically using the with statement:

from __future__ import with_statement # Only needed in Python 2.5
with open("hello.txt") as f:
    for line in f:
        print line

這與您的代碼具有相同的效果:

This is has the same effect as the code you have:

f = open("hello.txt")
try:
    for line in f:
        print line
finally:
    f.close()

with 語(yǔ)句是對(duì) Resource Acquisition Is Initialization C++中常用的成語(yǔ).它允許安全使用和清理各種資源,例如它可以用于始終確保關(guān)閉數(shù)據(jù)庫(kù)連接或始終釋放鎖,如下所示.

The with statement is direct language support for the Resource Acquisition Is Initialization idiom commonly used in C++. It allows the safe use and clean up of all sorts of resources, for example it can be used to always ensure that database connections are closed or locks are always released like below.

mylock = threading.Lock()
with mylock:
    pass # do some thread safe stuff

這篇關(guān)于在 Python 文件對(duì)象上使用迭代器時(shí)是否需要 close()的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問(wèn)題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

How to draw a rectangle around a region of interest in python(如何在python中的感興趣區(qū)域周?chē)L制一個(gè)矩形)
How can I detect and track people using OpenCV?(如何使用 OpenCV 檢測(cè)和跟蹤人員?)
How to apply threshold within multiple rectangular bounding boxes in an image?(如何在圖像的多個(gè)矩形邊界框中應(yīng)用閾值?)
How can I download a specific part of Coco Dataset?(如何下載 Coco Dataset 的特定部分?)
Detect image orientation angle based on text direction(根據(jù)文本方向檢測(cè)圖像方向角度)
Detect centre and angle of rectangles in an image using Opencv(使用 Opencv 檢測(cè)圖像中矩形的中心和角度)
主站蜘蛛池模板: 渣油泵,KCB齿轮泵,不锈钢齿轮泵,重油泵,煤焦油泵,泊头市泰邦泵阀制造有限公司 | 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 垃圾压缩设备_垃圾处理设备_智能移动式垃圾压缩设备--山东明莱环保设备有限公司 | 手持式浮游菌采样器-全排二级生物安全柜-浙江孚夏医疗科技有限公司 | 槽钢冲孔机,槽钢三面冲,带钢冲孔机-山东兴田阳光智能装备股份有限公司 | 头条搜索极速版下载安装免费新版,头条搜索极速版邀请码怎么填写? - 欧远全 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 书法培训-高考书法艺考培训班-山东艺霖书法培训凭实力挺进央美 | RO反渗透设备_厂家_价格_河南郑州江宇环保科技有限公司 | 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 100国际学校招生 - 专业国际学校择校升学规划 | 金属雕花板_厂家直销_价格低-山东慧诚建筑材料有限公司 | 上海赞永| 杭州高温泵_热水泵_高温油泵|昆山奥兰克泵业制造有限公司 | 选宝石船-陆地水上开采「精选」色选机械设备-青州冠诚重工机械有限公司 | 实体店商新零售|微赢|波后|波后合作|微赢集团| 探伤仪,漆膜厚度测试仪,轮胎花纹深度尺厂家-淄博创宇电子 | 玻璃钢型材_拉挤模具_玻璃钢拉挤设备——滑县康百思 | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 水压力传感器_数字压力传感器|佛山一众传感仪器有限公司|首页 | 圣才学习网-考研考证学习平台,提供万种考研考证电子书、题库、视频课程等考试资料 | 无锡装修装潢公司,口碑好的装饰装修公司-无锡索美装饰设计工程有限公司 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 高柔性拖链电缆_卷筒电缆_耐磨耐折聚氨酯电缆-玖泰特种电缆 | 南京展台搭建-南京展会设计-南京展览设计公司-南京展厅展示设计-南京汇雅展览工程有限公司 | sfp光模块,高速万兆光模块工厂-性价比更高的光纤模块制造商-武汉恒泰通 | 真空冷冻干燥机_国产冻干机_冷冻干燥机_北京四环冻干 | 钢结构-钢结构厂房-钢结构工程[江苏海逵钢构厂] | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 太阳能发电系统-太阳能逆变器,控制器-河北沐天太阳能科技首页 | 全自动包衣机-无菌分装隔离器-浙江迦南科技股份有限公司 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | HV全空气系统_杭州暖通公司—杭州斯培尔冷暖设备有限公司 | 断桥铝破碎机_铝合金破碎机_废铁金属破碎机-河南鑫世昌机械制造有限公司 |