Python文件读写「建议收藏」

Python文件读写「建议收藏」Python文件读写

大家好,又见面了,我是你们的朋友全栈君。

python文件读写


读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。

  • 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。

#文件操作,创建文件对象,通过open()函数创建文件对象
mode:代表文件要执行的操作的类型
r:读模式
w:写模式(每次写入文件之前都会先将文件中的内容清空,之后重新写入)
a:添加模式(每次写入文件时,不会清空文件内容)

import time;
#encoding=utf-8 文件操作的字符编码
file=open('hiahia','r',encoding='utf-8');
#只能做读操作 read方法是读取文件中所有的内容 (不适用)
print('文件中的内容有:%s'%file.read());
#readline 读取一行的内容 (适用)
print('文件中的第一行的内容为:%s'%file.readline())
#readlines读取一行的内容,会将文件中每一行的内容生成为列表中的一个元素 (不适用)
lists=file.readlines();
for line in lists:
    print("行内容为:%s"%line)
#在操作完队友的文件对象时,一定要关闭文件对象
file.close();#写入模式的时候,没有执行close方法,内容不会持久化保存到文件中
#如果不写close,默认解释器自动帮你关闭文件,但是将损耗更多的解释器性能

#写模式(w):写入内容,会将文件的原始内容清空

file1=open('hiahia','w',encoding='utf-8');

#写入的方法

file1.write('hiahia is hiahia')
time.sleep(10)#python为单线程工作,休眠当前线程,延缓程序执行close方法
file1.close();#在python程序中,如果用户没有手动去close文件对象,那么python会在底层,自动帮你close
print('休眠已结束!')

#添加模式(a):写入内容,不会修改文件的原内容

file2=open('hiahia','a',encoding='utf-8')
file2.write("\n山间的风");
file2.close();

#困扰:每次在创建完file对象的时候 都要调用close关闭
#with语句会在末尾自动关闭文件对象

with open('HelloWorld','r',encoding='utf-8') as file:
    print(file.read())

#这时无需关闭 文件对象了!

#r+(读写模式) w+(写读模式) a+(追加读模式)

#读写模式:既能写,又能读。以读为主,以写为辅

with open('hiahia','r+',encoding='utf-8') as file:
    print(file.read())#读取文件内容
    file.write('hehe')#写读模式会将写入的内容放置在文件内容的末尾处#从文件的开头覆盖文件的原始内容

#写读模式:可读可写,清空文件后写入

with open('hiahia','w+',encoding='utf-8') as file:
    file.write('hello python!')
    file.write('\nhello python!')
    #seek方法的作用是移动文件的句柄0代表句柄中的起始位置
    file.seek(0)
    print(file.read())

#追加读模式:最合适的既能写又能读的模式,追加在文件的末尾处

with open('hiahia','a+',encoding='utf-8') as file:
    file.write('hiahiahiahiahia');
    file.seek(0)
    #tell查询当前文件句柄的值number
    print(file.read())

文件操作的方法


#tell:获取当前文件指针的位置(在传输发生异常的时候 记录 当前文件指针的位置)
#seek:设置当前文件指针(开始续传的时候 seek重新定位文件(tell)) 断点续传:在两台主机传输文件的过程中 如果有一台主机发生了故障 那么 文件会终止传输 那么在程序回复正常的时候 再次传输文件
#是否需要将文件重新传输 500MB文件
#turncate:截断文件 清空文件中的内容

with open('hiahia','r',encoding='utf-8') as file:
    print('文件的默认位置:%s'%file.tell())
    print(file.read(10))#读取文件内容
    print('现在指针的位置:%s'%file.tell())
    file.seek(0)
    print(file.read())

#turncate方法的作用 在写模式 或读写模式下

with open('HelloWorld','r+',encoding='utf-8') as file:
    file.truncate();

转载于:https://blog.51cto.com/13770206/2307286

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107245.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月20日 下午7:40
下一篇 2022年4月20日 下午8:00


相关推荐

  • Python开源爬虫框架:Scrapy架构分析

    Python开源爬虫框架:Scrapy架构分析

    2021年9月3日
    65
  • Java 标识符 命名规则 变量 数据类型

    Java 标识符 命名规则 变量 数据类型Java 语法关键字和保留字关键字 被 java 语言赋予了特殊含义 用作专门的用途的字符串所有关键字都是小写 保留字 现有的 java 版本尚未使用 但是以后版本可能作为关键字使用 gotoconst 标识符标识符 java 对各类变量 方法和类等要素命名时使用的字符序列成为标识符 凡是自己可以命名的地方都叫做标识符 由 16 个英文字母大小写 0 9 或者 和 组成 数字不可以用来开头 不可以使用关键字和保留字 但可以包含关键字和保留字 Java 中严格区分大小写 长度度无限制标识符不

    2025年6月8日
    4
  • 阿里为什么要在北京建总部_阿里正式offer审批流程

    阿里为什么要在北京建总部_阿里正式offer审批流程开篇由于疫情的缘故,钉钉算是脱颖而出,下载量而话题度直线攀升,巧的是,我也在这个特殊时间里接到了阿里钉钉的邀请。本人毕业于华南地区某不知名211院校,Java方向,目前钉钉三面已经结束,基本可以说是坐上了“直通车”,收到的反馈都是比较好的,跟HR沟通感觉希望很大,按道理来说拿下offer是没有太大问题的,以下内容就是我这次的钉钉远程面试经历的一个分享和一些心得,希望对大家能够有所帮助。以下主要分享…

    2026年3月3日
    6
  • Android面试题(四大组件篇)[通俗易懂]

    Android面试题(四大组件篇)[通俗易懂]Android面试题(四大组件篇)window、进程、线程篇Android面试题(数据存储、view篇)ActivityQ:说下Activity的生命周期?Q:onStart()和onResume()/onPause()和onStop()的区别?是否位于前台,对用户是否可见的区别Q:ActivityA启动另一个ActivityB会回调哪些方法?如果A…

    2022年5月21日
    44
  • mac phpstorm激活码2021【在线注册码/序列号/破解码】[通俗易懂]

    mac phpstorm激活码2021【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    42
  • 按位与、按位异或、按位取反「建议收藏」

    按位与、按位异或、按位取反「建议收藏」&按位与|按位或^按位异或1.按位与运算按位与运算符”&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。例如:9&5可写算式如下:00001001(9的二进制补码)&00000101(5的二进制补码)00000001(1的二进制补码)可见9&5=1。按位与运算通常用来对某些位

    2022年6月5日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号