python3:文件读写+with open as语句
2021/7/19 11:05:48
本文主要是介绍python3:文件读写+with open as语句,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前提:文中例子介绍test.json内容:
hello 我们 326342
1.文件读取
(1)打开文件open,默认是已读模式打开文件
f = open('../dataconfig/test.json') print(f.read()) f.close() 输出结果: hello 鎴戜滑 326342
read():一次性读取文件所有内容
输出结果中出现乱码:需要给open函数传入encoding参数
f = open('../dataconfig/test.json',encoding='utf-8') print(f.read()) f.close() 输出结果: hello 我们 326342
(2)read(size):读取部分数据
f = open('../dataconfig/test.json',encoding='utf-8') print(f.read(3)) f.close() 输出结果: hel
(3)redline():每次读取一行数据,逐行读取文件内容
f = open('../dataconfig/test.json',encoding='utf-8') data = f.readline() while data: print(data) data = f.readline() f.close() 输出结果: hello 我们 326342
输出结果中每一行数据读取之后都会空一行,解决方案:print(data.strip())或者print(data,end='')
(4)readlines():读取文件所有行
f = open('../dataconfig/test.json',encoding='utf-8') data = f.readlines() print(data) print(type(data)) for line in data: print(line.strip()) f.close() 输出结果: ['hello\n', '我们\n', '326342'] <class 'list'> hello 我们 326342
(5)linecache.getline():读取某个特定行数据
import linecache data = linecache.getline('../dataconfig/test.json',1) print(data) 输出结果: hello
总结:不同场景下读取方式选择
如果文件很小,read()一次性读取最方便 如果不能确定文件大小,反复调用read(size)比较保险 如果是配置文件,调用readlines()最方便;redlines()读取大文件会比较占内存 如果是大文件,调用redline()最方便 如果是特殊需求输出某个文件的n行,调用linecache模块 2.文件写入 (1)'w'就是writing,以这种模式打开文件,原来文件中的内容会被新写入的内容覆盖掉,如果文件不存在,会自动创建文件f = open('../dataconfig/test.json','w') f.write('hello,world!') f.close()
test.json文件内容:hello,world!
(2)‘’a’就是appendin:一种写入模式,写入的内容不会覆盖之前的内容,而是添加到文件中
f = open('../dataconfig/test.json','a') f.write('hello,world!') f.close()
test.json文件内容:
hello 我们 326342hello,world!
3.上述读写文件例子看出,每次读写完之后,都要f.close()关闭文件,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的。
但是实际中,文件读写可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证任何时候都能关闭文件,可以使用try-finally来实现(finally内的代码不管有无异常发生,都会执行)
try: f = open('../dataconfig/test.json', 'r') print(f.read()) finally: if f: f.close()
每次都这样写实在是麻烦,python中的with语句用法可以实现
with open('../dataconfig/test.json',encoding='utf-8') as f: print(f.read()) 输出结果: hello 我们 326342
打开多个文件进行操作:
with open('../dataconfig/test.json',encoding='utf-8') as f1,open('../dataconfig/test1.json',encoding='utf-8') as f2,open('../dataconfig/test2.json',encoding='utf-8') as f3: for i in f1: j = f2.readline() k = f3.readline() print(i.strip(),j.strip(),k.strip())
原文:https://www.cnblogs.com/shapeL/p/9141238.html
这篇关于python3:文件读写+with open as语句的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程