Python文件打开读取写入方法实用案例
作者:山山而川 发布时间:2023-08-23 21:19:51
前言
读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。
读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。
python中对文件的操作方法经常使用open和with open。下面分别介绍
open()方法
正常情况下,想要打开一个文件并且保证该文件会被关闭。使用open()方法,最后一定要保证关闭文件对象,即调用close()方法。原因是当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘同时释放资源。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了。语法格式如下
文件对象f = open(文件名,文件对象访问模式)
其中的文件对象访问模式如下
1. "w",打开一个新的文件并写入内容
这里对象访问模式使用"w",打开文件时,文件存在则清空内容,不存在则创建新的
f = open('1.txt','w')
f.write('今天一直在下雨\n')
f.write('把我整抑郁了\n')
f.write('o(╥﹏╥)o\n')
f.close()
2. "r",打开文件并读取内容
f = open("1.txt",'r')
print(f.read()) #读取全部内容
f.close()
f = open("1.txt",'r')
print(f.readline()) #一个f.readline()只读第一行
f.close()
f = open("1.txt",'r') #全部读,但是用列表的方式展示
print(f.readlines())
f.close()
3. "a",以追加内容的模式打开
上面使用"w"的时候文件存在则会清除内容,如果我们想要打开一个已经存在内容的文件并追加内容则可以使用"a"。如下打开存在的"1.txt"文件,并追加一行内容
f = open('1.txt','a')
f.write("帅哥出来玩吗")
f.close()
4. 创建一个空的文件
open("12.txt",'w').close()
with open()方法
open()使用后需要调用f.close()方法,但是每次都这么写实在太繁琐,所以,Python引入了with语句来自动帮我们调用close()方法。推荐使用with open()
with用于创建一个临时的运行环境,运行环境中的代码执行完后自动安全退出环境。
1. 打开并读取文件,每次读取一行内容
方法一:
with open('1.txt','r') as file:
for line in file: #依次遍历
#print(line) #默认输出的内容会多一个换行
print(line[:-1])
将网页的数据进行保存时有时需要指定编码类型,比如为utf-8。不确定可以查看网页源码的编码类型,这里保存和网页编码类型一样就行
with open('./2.html','w',encoding='utf-8') as f:
方法二:
直接使用循环也可以
for line in open("1.txt",'r'): print(line[:-1])
2. 打开并写入文件
with open('2.txt','a') as file:
file.write("hello\n")
file.write("are you ok?\n")
实用案例
需求:
打开文件1.txt,1.txt的内容为一行行的ip地址。每次从里面读取一行数据加上"http://",然后将其保存到另外一个新的文件中
for ip in open("1.txt",'r'):
url = "http://" + ip
with open("url.txt",'a',,encoding="utf-8") as f: #这里必须以追加的模式打开,不然每次新增内容前都会清空
f.write(url)
print('ok')
来源:https://blog.csdn.net/qq_44159028/article/details/120388405
猜你喜欢
- 前面已经提到,CSS之所以如此强大,是因为它采用HTML文档结构来决定其样式的应用。但这仅仅只是一方面,因为它只暗示了CSS之所以使用文档结
- 题目:一个六位数,分别用2,3,4,5,6乘它,得到的五个新数仍是由原数中的六个数字组成,只是位置不同,则此六位数是多少?function
- 众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。你们中的许多人可能已经使用 pip 
- 什么是deferdefer用来声明一个延迟函数,把这个函数放入到一个栈上, 当外部的包含方法return之前,返回参数到调用方法之前调用,也
- 为了提高Asp程序的性能,人们常常将经常使用的数据缓存在 Application,但是你修改了数据库后怎么让application更新呢,本
- 今天偶然看到“一个有将近两年的div + CSS 开发经验和历史,曾经是Web标准绝对拥趸的同志”在自己的blog上发表放弃div+css的
- 聚集索引,数据实际上是按顺序存储的,数据页就在索引页上。就好像参考手册将所有主题按顺序编排一样。一旦找到了所要搜索的数据,就完成了这次搜索,
- 在前后端分离是大趋势的背景下,前端获取数据都是通过调用后台的接口来获取数据微服务的应用越来越多。Django是Python进行web应用开发
- 很多时候关心的是优化SELECT 查询,因为它们是最常用的查询,而且确定怎样优化它们并不总是直截了当。相对来说,将数据装入数据库是直截了当的
- 这篇文章主要介绍了一种简单的MySQL数据库安装方法,详细内容请大家参考下文:虽然安装MySQL数据库的文章很多,但是我看后感觉对于初学者来
- 传统来说,大家在CSS中使用的颜色要么是16进制格式,要么是rgb格式,就像rgb(171,205,239)。CSS3带来了一些新的处理颜色
- 这篇文章主要介绍了Python三元运算与lambda表达式实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 遇到一个难题,在无物理键盘情况下,通过页面软键盘在页面文本框输入汉字,不知道51js的各位大牛有没有遇到过这种需求,如果遇到过是如何解决的,
- 创建Spring Boot应用在基于Spring来重构JSP应用之前,我们先引入Spring Boot,使之成为一个Spring Boot应
- 奥运来了,三大门户网站都加上了奥运主题。加上下面代码你的网站也拥有奥运主题了:<style type="text/
- 非常好的一篇技术文档,翻译自Louis Lazaris 2009年9月15日发表的《The Z-Index CSS Property: A
- 首先说说框架(Frameworks)这个词,框架就是为我们提供了一个平台一个运行环境,在如此统一的前提下我们做相关开发才能“有章可循”,要充
- CSS2.1 中规定了关于 CSS 规则 Specificity(特异性)的计算方式,用一个四位的数字串(注:CSS2 中是用三位)来表示,
- 这篇论坛文章(赛迪网技术社区)详细的介绍了在MySQL中使用GRANT语句增添新用户的具体步骤,更多内容请参考下文…&
- 1,CSS,JS,IMG一个都不能少运行代码框<style type="text/css">&l