Python open()函数文件打开、读、写操作总结
·No AI「完全由人类大脑和双手完成,没有任何AI参与」
在编程和计算机的使用中,与文件打交道是必不可少的,每天都要打开读取写入很多的文件,所以了解Python的文件打开、读、写操作是非常有必要的。
为什么是with open()?
一般的文件打开方法:
f = open(os.path.join(os.path.dirname(__file__),'17python.txt'))
s = f.readline();# 一次读取一行内容
print(s)
f.close() #关闭流,如果是写入文件,不关闭流,可能会造成写入失败或是内容丢失。
使用with open() as f :
with open(os.path.join(os.path.dirname(__file__),'17python.txt')) as f :
s = f.readline()
print(s)
with open的好处是,不用再使用close()方法,避免因忘记close()方法产生的错误。
open方法中的常用参数,open函数有很多的参数,常用的是file,mode和encoding,name就不解释了,文件名字符串,encoding='utf-8',用来指定打开或写入文件的编码。 open(name[,mode[,buffering]]) 其中mode 指定文件打开方式。
读写模式的类型有:
- rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
- w 以写方式打开,
- a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
- r+ 以读写模式打开
- w+ 以读写模式打开 (参见 w )
- a+ 以读写模式打开 (参见 a )
- rb 以二进制读模式打开
- wb 以二进制写模式打开 (参见 w )
- ab 以二进制追加模式打开 (参见 a )
- rb+ 以二进制读写模式打开 (参见 r+ )
- wb+ 以二进制读写模式打开 (参见 w+ )
- ab+ 以二进制读写模式打开 (参见 a+ )
读取及写入文件
- read()方法用来读取文件
- write()方法用来写入文件
关于Python读取大文件内容丢失
数据保存 一般保存没有什么大问题,主要是读取。 如果保存后是字符串,之前是list 或是 元组(Tuples)保存后就是字符串了,再读取就需要转换成对应的容器,这里用函数方法,效果还是比较不错的。 还有就是大文本在读取的时候如果一次用python read()全部读取的时候会出现莫明的无反应及读取内容不全的情况 ,这里采用分段读取比较好些:
with open(os.path.join(os.path.dirname(__file__),'17python.txt'), mode='r',encoding='utf-8') as f:
s = ''
while True:
temp = f.read(100)#分段读取,可以解决读取大文件时无法读取的奇怪问题
if temp == '':
break
s += temp
print(s)
f.close()
相关参考
本文源码下载:
相关文章
- 解决错误 ERROR [WinError 10049] 在其上下文中,该请求的地址无效。
- 如何在Python程序中使用配置文件.ini(ConfigParser)
- Python os.mknod 运行报错无法创建文件
- Python os.path.dirname(__file__) 在终端命令行下报错
- 聊聊Python中的递归与快速排序那点事
- 妙用IPython学习Python--IPython快速上手
- Python生成器yield应用实例——监控日志
- 如何快速的复习学习过的Python
- python中导入不同目录中的自定义模块/class/函数/方法
- 浅谈Python中的协程及利用协程代替多线程及多进程并发编程
- 聊聊Python中晦涩的生成器(yield)与生成器表达式
- Python中创建TCP服务器与客户端进行通信(下)Tk、thread与socket组合。
- Python中创建TCP服务器与客户端进行通信(上)
- Python程序在Windows10终端运行中文乱码解决方法
- 你与黑客之间差了多少行Python代码?
- 聊聊Python闭包(Closure)的那点事。
- Python并发编程(下)功能强大设置简单的分布式多进程生产者与消费者模式
- Python并发编程(上)进程模块multiprocessing模块和Process类
- Python多线程编程(下)多线程锁 threading.Lock
- Python多线程编程(上)多线程创建的几种方法
- python 类的静态方法和类方法
- Python面向对象编程(OOP)初探
- Python random 随机数模块操作总结
- Python3 datetime模块的时间操作
- python3函数学习笔记简单总结
- PythonINI配置文件读写的简单方法
- Python os.path模块中一些常用方法的整理总结
- Python 采集数据三步曲之[Requests + re.py模块进行数据采集]
- Python 采集数据三步曲之[Requests开源协议的HTTP 库]
- Python 采集数据三步曲之[正则表达式 re.py]
- python3 Markdown模块解析Markdown代码
- 创建python 虚拟环境 venv