Python打开文件、文件读写操作、with方式、文件常用函数实例分析


Posted in Python onJanuary 07, 2020

本文实例讲述了Python打开文件、文件读写操作、with方式、文件常用函数。分享给大家供大家参考,具体如下:

打开文件:

在python3中,打开文件的函数是:

open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)

参数说明:

file--文件名
mode—打开模式,默认只读模式
buffering--如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
encoding—打开文件的编码方式

模式介绍:

r:只读模式(默认)

w :只写模式,如果文件不存在就创建,如果存在,写入的数据会覆盖原来的数据

b :二进制模式

t :文本模式

+:可写可读模式

a:追加模式,如果文件存在则文件指针指向文件末尾(追加数据),如果不存在就创建

r+:读追加模式,先读,再追加

w+:写读模式,先写,意味着原本内容丢失,再读。  

  • 如果对于含有非ascll字符的文件,必须使用encoding,否则会抛异常:

Python打开文件、文件读写操作、with方式、文件常用函数实例分析

print("r".center(50,'-'))
f=open("file.txt",encoding="utf-8")
print(f.read())
f.close()
-----------------
运行结果:
my
sas
aaa
fsafsa
中文
中文
葫芦娃

文件使用完毕后必须关闭: 文件指针.close() 


文件操作:

读操作:

读取文件内容如下:

Python打开文件、文件读写操作、with方式、文件常用函数实例分析

  • reads()是读出全部内容
print("r".center(50,'-'))
f=open("file.txt",encoding="utf-8")
print(f.read())
f.close()
---------------------------
运行结果:
my
sas
aaa
fsafsa
中文
中文
葫芦娃
  • readline()是读出一行
print("r".center(50,'-'))
f=open("file.txt",encoding="utf-8")
print(f.readline())
f.close()

-----------
运行结果:
my
  • readlines()是读出全部内容,并整理成一个列表
print("r".center(50,'-'))
f=open("file.txt",encoding="utf-8")
print(f.readlines())
f.close()




#------------------------r-------------------------
#运行结果:
['my\n', 'sas\n', 'aaa\n', 'fsafsa\n', '中文\n', '中文\n', '葫芦娃\n', '\n']
  • r+模式会根据读的内容来决定指针的位置
print("r".center(50,'-'))
f=open("file.txt","r+",encoding="utf-8")
# print(f.readline())
f.write("hello mike")
f.close()

结果:

Python打开文件、文件读写操作、with方式、文件常用函数实例分析

 

print("r".center(50,'-'))
f=open("file.txt","r+",encoding="utf-8")
print(f.readline())
f.write("hello mike")
f.close()

新结果:

Python打开文件、文件读写操作、with方式、文件常用函数实例分析 

写操作:

  • write():将一个字符串写入文件
myfile=open("myfile1","wb")
myfile.write(b"nnnnnn")
myfile.write("my葫芦娃".encode("utf-8"))
myfile.close()
  • writelines(可迭代对象) 将一个可迭代对象写入文件
myfile=open("myfile1","wb")
myfile.write(b"nnnnnn")

myfile.writelines([b'1',b'2',b'3',b'4'])
myfile.close()
  • 当需要写完之后即时读出来时,使用w+,然后将文件指针置回文件头:
myfile=open("myfile1","wb+")
myfile.write(b"nnnnnn")
myfile.seek(0)
print(myfile.read())
myfile.close()
      • 如果是需要读出特定位置,可以使用变量来记录位置
myfile=open("myfile1","wb+")
myfile.write(b"1nnnnnn")
site=myfile.tell()
myfile.write(b"2nnnnnn")
myfile.seek(site)##读出后一段
print(myfile.read())
myfile.close()

with:

  • 为了便捷的关闭文件,python增加了with功能,当with体执行完将自动关闭打开的文件:
with open("file.txt","r+",encoding="utf-8") as f:##将自动执行f.close()
 print(f.tell())
 f.write("金刚")
 for line in f:
  print(line,end="")
  • 可以同时打开多个文件:
with open("file.txt",'r') as f ,\
open("file.new",'r') as m:
 print(f.read(),m.read())

文件常用函数:

file.close():关闭文件。关闭后文件不能再进行读写操作

file.seek(offset[, whence]):设置文件当前位置

file.tell():返回文件当前位置。

myfile=open("myfile1","wb+")
myfile.write(b"1nnnnnn")
site=myfile.tell()
myfile.write(b"2nnnnnn")
myfile.seek(site)##读出后一段
print(myfile.read())
myfile.close()

file.flush():刷新文件内部缓冲,立即把内部缓冲区的数据写入文件,因为并不是马上将文件

import time
myfile=open("myfile1","wb+")
myfile.write(b"1nnnnnn")
time.sleep(10)
# myfile.flush()
myfile.write(b"2nnnnnn")
myfile.close()

上述代码,直到程序运行完成才一次性写入“1nnnnnn2nnnnnn”

import time
myfile=open("myfile1","wb+")
myfile.write(b"1nnnnnn")
myfile.flush()
time.sleep(10)
myfile.write(b"2nnnnnn")
myfile.close()

上述代码,可以看到,在程序sleep之前就已经写入了“1nnnnnn”

file.truncate([size]):截取文件,从文件开头,截到指定位置,会覆盖原文件。

文件内容:

Python打开文件、文件读写操作、with方式、文件常用函数实例分析

print("r".center(50,'-'))
f=open("file.txt","r+",encoding="utf-8")

print(f.readline())
print("----truncate()-------")
print(f.tell())
m=f.tell()
f.truncate(m)#内容从0位置截断到指定位置,不论当前光标位置
f.close()

执行后,文件内容:

Python打开文件、文件读写操作、with方式、文件常用函数实例分析

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python类的专用方法实例分析
Jan 09 Python
django1.8使用表单上传文件的实现方法
Nov 04 Python
python贪婪匹配以及多行匹配的实例讲解
Apr 19 Python
Python装饰器原理与简单用法实例分析
Apr 29 Python
python 阶乘累加和的实例
Feb 01 Python
Python基础学习之时间转换函数用法详解
Jun 18 Python
Python中拆分字符串的操作方法
Jul 23 Python
Python3使用PySynth制作音乐的方法
Sep 09 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
pycharm中leetcode插件使用图文详解
Dec 07 Python
PyCharm常用配置和常用插件(小结)
Feb 06 Python
python实现简单聊天功能
Jul 07 Python
Python装饰器原理与基本用法分析
Jan 07 #Python
python保留小数位的三种实现方法
Jan 07 #Python
pytorch之ImageFolder使用详解
Jan 06 #Python
pytorch之inception_v3的实现案例
Jan 06 #Python
pytorch之添加BN的实现
Jan 06 #Python
PyTorch学习:动态图和静态图的例子
Jan 06 #Python
pytorch动态网络以及权重共享实例
Jan 06 #Python
You might like
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
JAVASCRIPT  THIS详解 面向对象
2009/03/25 Javascript
ext 代码生成器
2009/08/07 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
浅谈JS验证表单文本域输入空格的问题
2017/02/14 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
python中尾递归用法实例详解
2015/04/28 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
单利模式及python实现方式详解
2018/03/20 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
Selenium webdriver添加cookie实现过程详解
2020/08/12 Python
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
入党自荐书范文
2014/03/09 职场文书
融资租赁计划书
2014/04/29 职场文书
新闻稿格式范文
2015/07/18 职场文书
《花钟》教学反思
2016/02/17 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis