范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Python实战012open打开指定文件及常见操作指南

  操作系统一般不允许程序直接操作磁盘文件的,文件在磁盘上的读写都是由操作系统提供的,文件操作包括创建、删除、修改权限、读取、写入等。要想实现对文件的操作就需要请求操作系统打开一个文件对象,然后通过操作系统提供的接口来实现对文件读写的相关操作。读写文件是最常见的 I/O 操作,Python内置相关API可以帮助我们快速的实现文件读写操作。
  文件对象
  Python内置的 open() 函数可以用于打开指定文件 ,该函数会返回一个文件对象(该对象包含了当前文件拥有的属性信息,相当于文件句柄)。参数file为要创建或打开文件的文件名称,参数mode用于指定文件的打开模式(可选),参数buffering用于指定对文件做读写操作时是否使用缓冲区。在打开文件之后就可调用文件对象的属性和方法,完成对文件的读/写操作之后最后需要关闭该文件,通过文件对象的close() 函数来实现即可。
  打开模式
  文件打开是可以指定其打开的模式,该参数通过mode来指定【默认模式为只读(r)】。选择不同的打开模式决定了后续可以对文件进行操作,如果使用 r 模式打开的文件则只能读取文件而无法修改文件内容。open()提供了多种打开模式,下面列出了对应的打开模式和说明:
  设置缓冲
  缓存是数据交换的缓冲区,打开缓冲后当程序执行输出时会先将数据输出到缓冲区中,当要读取数据时会首先从缓存中查找需要的数据,如果找到了就直接执行没有再去内存中找。缓存的运行速度比内存快得多,可以帮助硬件更快地运行程序。所以使用open"的时候建议打开缓冲,这样程序执行 I/O 操作时将具有更好的性能。缓冲通过参数buffing来定义, 0代表不缓冲,1或大于1使用的缓冲区字节数大小,1表示使用系统默认缓冲字节数1024。
  更新缓存
  一般情况下文件关闭后会自动刷新到硬盘中并刷新缓冲区,如果你想在文件操作过程中更新缓冲时可以使用 flush()函数。该函数可以将缓冲强制刷新到硬盘中并清空缓冲区,当操作的文件较大时可以使用该函数及时的更新缓冲区。
  文件属性
  文件打开之后我们就可以获得该文件对象,该对象中包含了文件的一些属性。
  文件读取
  文件对象中提供了很多API可以用来读取文件内容,读取文件内容可使用 read()、readline() 以及 readlines() 函数。 read()会读出全部内容,readline()会逐行读取内容。readlines()则将指定的行数内容读取出来并返回一个列表,如果没有指定行数则全部输出。
  文件写入
  要实现内容的写入我们在打开文件时就需要先指定文件对象为可写模式,通过参数mode指定文件打开模式为读写(r+)。文件对象中同样提供了很多API可以用来写入文件内容,向文件中写入内容可以使用 write() 函数和writelines() 函数。write() 函数和read()、readline()函数对应可以将字符串写入文件(多个字符串写入会自动追到),writelines() 函数则与readlines()函数对应用来写入字符串列表的。readlines写入列表数据时不会自动换行,如果希望根据列表元素换行则需要在列表中显式的加入换行符。
  文件定位
  文件对象提供了一个tell()函数用来定位当前文件位置(这个定位的是字节位,计算机的最小存在单位),下次继续写入的时候就会知道从哪里开始继续。如果想改变当前文件的位置我们可以通过函数seek(offset [,from])来指定偏移量,offset 表示要移动的字节数(默认从起始位置),from指定开始移动字节的参考位置(可选)。from设置为0则以文件起始位置开始,当为1则从当前位置开始,当为2时从文件末尾开始编译offset个字节量。
  错误解决:can"t do nonzero cur-relative seeks
  在使用seek()函数时你可能会遇到这样的错误提示:"io.UnsupportedOperation: can"t do nonzero cur-relative seeks",这是因为没有指定b模式选项打开文件。r只允许从文件头开始计算相对位置,从文件其他位置计算时就会引发异常。这时候如果是写入就需要注意参数类型了,请求参数变成bytes对象了而不是str。
  关闭文件
  文件操作完之后应该及时的关闭,因为文件打开之后会产生缓存占用系统资源。而且如果文件被占用也容易造成其他程序执行异常,所以当我们操作完成之后应该及时关闭。关闭已经打开的文件可以使用close()函数来实现,关闭后的文件不能再进行读写操作(需要重新打开)。为了方便关闭文件Python增加了with功能,当with体执行完将自动执行close()函数来关闭打开的文件。
  总结:
  Python操作文件还是相当的简单高效的,利用open () 函数就可以快速的打开一个文件并创建文件流对象,这时候我们就可以调用它提供的方法进行读写操作。with可以创建一个临时的运行环境,运行环境中的代码执行完后自动安全退出环境。这样就可以不用close()方法关闭文件,无论在文件使用中遇到什么问题都能安全的退出并给出报错信息。以上内容是小编给大家分享的【Python实战012:open打开指定文件及常见操作指南】。希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。
  为了方便学习,下面附上本文用到的源码:with open(filepath,mode="r",encoding="utf-8") as rf:     rf.read()      //读取整个文件对象     rf.readline()  //读取每一行     rf.readlines() //读取指定行内容,未指定则返回全部     rf.readable()  //检查文件是否可读 with open("./a.txt", "r+", encoding="utf-8", buffering=1024) as wf:     str = "测试数据 "     str_list= ["1 ","2 ","3 ","4"]     wf.write(str)     wf.writelines(str_list) with open("./a.txt", "rb+", buffering=1024) as wf:     str1 = "件对象提供了一个tell()函数用来定位当前文件位置"     wf.write(str1)  # 错误 :TypeError: a bytes-like object is required, not "str"     wf.write(str1.encode())     wf.seek(6, 0)    #从起始位置开始偏移6个字节     wf.write("000".encode())     wf.seek(9, 1)   # 从当前位置开始偏移9个字节     wf.write("111".encode())     wf.seek(6, 2)   # 从末尾位置开始偏移6个字节     wf.write("222".encode()) with open("./a.txt",mode="r") as rf:     rf.read() ------------------ 等效 ---------------------- rf=open("./a.txt",mode="r") rf.read() rf.close()

助听器能不能代买?这样是错误的,千万不能让别人代买助听器!随意买一个助听器是不能解决听力问题的,随意买一个助听器或许还会给你带来新的听力伤害您好!助听器能不能代买?助听器不可以代买!助听器验配必须是从2899跌至2499元,三星屏65WIMX766,骁龙870口碑旗舰仍受青睐回看整个2021年,高端旗舰市场的口碑下滑不少,主要是因为各大厂商被打了一个措手不及,不成熟的芯片工艺搭配不极致的散热,使得手机发热特别严重,反而是面向次旗舰市场开发的骁龙870深6000mAh13GB大内存1698元你心动吗?2022年初到现在,国内已经出现不下十款高端机型,这些手机都有一个共同卖点,几乎都是围绕相机屏幕和性能展开,并且出现了很多超级快充手机,以往66w快充就很快了,现在没有80w快充都仅2999元,骁龙812GB512GB,还有5000mAh大电池,米粉都心动了今年的手机圈内卷相当严重,为了保证产品的竞争优势,主流手机品牌都在搞机海战术,小米OPPOvivo都不例外。预算25003000元,我们可以买到许多性价比相当出色的新旗舰,红米K5小区如何申请新能源充电桩记者万华翼近日,有市民致电市12345政务服务便民热线,询问小区安装新能源充电桩需要什么手续,如何申请安装。据悉,国家电网有限公司明确支持社会资本参与慢充快充等各类电动汽车充换电设电商预售切忌玩套路最近一段时间,电商超长预售问题受到广泛关注,比如,有些消费者称服装预售期太长,衣服收到时,季节都过了。前不久,中消协点名部分网络商家对预售商品设置超长预售期,表示有些网络经营者利用苹果将向配件商收取年费,每年668元,到期前三次提醒,不交就开除5月18日消息,据充电头网报道,近日苹果正式向MFi计划会员收取年费,过期未支付年费的话,MFi计划会员资格将会被终止。根据苹果发出的关于收取MFi年费的邮件显示,MFi计划年费为苹果iOS15。5发布四大新变化,看完决定升不升昨天凌晨,苹果发布了iOS15。5正式版。不得不说,最近苹果倒是蛮勤快的,本次的正式版本跟上一个RC版只间隔了3天,版本号也都是19F77,基本更新的内容也和最后一个测试版一致。经媒体iPhone13Pro将增产千万台二季度为传统手机销售淡季,但是苹果手机凭借强劲销量,竟要大举增产。据韩国媒体TheElec此前披露,苹果公司决定在二季度大幅增产iPhone13Pro系列机型(包括iPhone13卓尔智联2018年度收入大增1。5倍至561。16亿元北京时间3月31日,卓尔智联(2098。HK)发布2018年业绩公告。受益于公司供应链管理及贸易业务收入大增,公司2018年整体收入相当于上年度的逾2。5倍,毛利同比增长超过50。最赚钱公司,坐拥12亿用户每天收入60亿,人们从出生就使用它如果谈到中国哪家企业最赚钱,相信很多人会第一时间想到阿里巴巴华为或者万达集团。但如果上升国家层面的话,这些企业在一家公司面前就显得相形见绌了,而这家公司堪称是中国赚钱最快的企业,它
老QQ号有多大的价值?网友达到这些条件,或许能换套房1999年,马化腾与团队员工在深圳开发了第一代聊天软件QQ的前身OICQ,当时的OICQ只有几百KB的大小。马化腾与团队将其研发出来之后为了吸引更多用户,于是扮演女性用户专门与网友马斯克四处造势,推动狗狗币突破新高争当最牛山寨币和狗币的上升逻辑一样,人称一坨屎币的SHIB最近也在上演一场荒诞狂飙。五月七日,马斯克在一条有关SHIB的Twitter上留言说我要找一只柴犬,我想找一只柴犬。这就是捧红了狗币的货谷歌霸气官宣!发布新自研芯片原生安卓旗舰机皇在中国量产上市8月26日讯相信大家都知道,自从国产手机老大哥华为遭受到新一轮芯片禁令之后,也让全球智能手机市场迎来了新一轮的大洗牌,全球TOP5智能手机厂商都获得了非常不错的销量增长,就连被很多漫步者NeoBudsPro圈铁降噪耳机听感为王实力圈粉TWS真无线蓝牙耳机行业在近两年兴起,逐渐引领了一种潮流。各大品牌都相继推出了价格不同的蓝牙耳机。随着这种新潮的诞生,进军真无线蓝牙耳机这个行业的,不仅有一些老品牌,还有新生力量的电商的最后一段红利时期免费流量一说起电商,在大家的脑海中想到更多的是开车烧钱,竞争越来越大,流量越来越贵。。都是叫苦叫难的,今天我就给大家分享一个小众类目的行业医药健康,不开车,不报活动,就可以日销过万,该赚得新能源汽车空间有多秀?小鹏P5特斯拉毛豆3在线打样雨雪天出行,难度MAX购物不能买太多,拎不动太头痛明明居住地到公司只有几公里,还要倒两趟地铁才能到达种种迹象表明,无车真的寸步难行。因此当我有了一笔可观的存款后,第一件事就是将购车特斯拉modelY试驾历险记上个月modelY出了单电机版本,价格降了7万,有一天正好在亦庄办事,下午3点多有空,联系了特斯拉门店,到店试驾了modelY,试驾的车型还是双电机版,外观比model3高一些,比两款重磅扫地机器人新品即将发售,石头G10和追觅W10抢先看8月底,扫地机器人行业的两款重磅产品都进入了预售阶段石头G10和追觅W10。虽然我们还没拿到这两款产品,但是我们对两款产品官方释放的数据信息进行了对比,今天就详细分析一下,希望对有未来已来,欢呼吧人类特斯拉CEO马斯克在8月19号的人工智能大会上宣布他们将于2022年发布一款名为特斯拉机器人的原型产品。这款机器人的身高大约为1。73米。体重达56。7公斤。移动速度8公里每小时。远营商强制手机移除5G开关是否伤天害理几大国有运营商正在强制各手机厂商移除任务栏中的5G快捷开关。三大(或几大)运营商是商业组织,为了一己的商业私利。为了更多赚国民的5g流量钱。强制取消5g开关。这于理于法是否符合,真为什么AMD是目前最值得购买的顶级晶片股AdvancedMicroDevices最大的业务正在蓬勃发展,它正在从英特尔手中夺走市场份额。由于相对于英特尔芯片拥有技术优势,AMD坐拥巨大的收入机会。该公司有望通过发布以更高