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


猜你喜欢
- 前言今天,一起用 Python 来理一理红楼梦里的那些关系不要问我为啥是红楼梦,而不是水浒三国或西游,因为我也鉴定的认为,红楼才是无可争议的
- 1. 传值与传址的区别传值就是传入一个参数的值,传址就是传入一个参数的地址,也就是内存的地址(相当于指针)。他们的区别是如果函数里面对传入的
- 将 numpy 数组存入文件,有多种文件类型可供选择,对应地就有不同的方法来读写。下面我将介绍读写 numpy 的三类文件:txt 或者 c
- 北京时间2020年12月1日,JetBrain公司推出了二十周年第三个稳定版的IntelliJ IDEA 2020.3 。距离上一个稳定版I
- 业务背景业务需求要求开发一个异步上传文件的接口,并支持上传进度的查询。需求分析ZIP压缩包中,包含一个csv文件和一个图片文件夹,要求:解析
- 首先为大家分享python实现发送手机短信验证码后台方法,供大家参考,具体内容如下1、生成4位数字验证码def createPhoneCod
- 在url网址中,我们经常使用server.urlencode来对网址进行编码,特别是遇到网址中有中文字符的时候,如<a href=&q
- 1.表达式操作符Table 1 算术操作符操作符 语法 含义+ a + b 相加 - a - b 相减 - - a
- 本次系统环境os: Deepin(Linux)Python: 3.7lib: PyYAML=5.3.1 | selenium=3.141.0
- 模块在python编程中的地位举足轻重,熟练运用模块可以大大减少代码量,以最少的代码实现复杂的功能。下面介绍一下在python编程中如何导入
- 最近在用vue做项目,学习了不少东西,但是有时候光顾着做项目却忘记要找个时间来整理一下最近的一些学习新得,因为是新手,所以可能会有错误的地方
- 然而这里不打算对某种存储引擎的实现细节进行描述,也不打算介绍各种存储引擎的优缺点,只是描述一下mysql如何处理binlog,并澄清几个容易
- Django 中自带了 sitemap框架,用来生成 xml 文件Sitemap(站点地图)是通知搜索引擎页面的地址,页面的重要性,帮助站点
- 如下所示:import numpy as npimport matplotlib.pyplot as plt# 生成测试数据x = np.l
- 一、CSS HACK以下两种方法几乎能解决现今所有HACK.1, !important随着IE7对!important的支持, !impor
- 前言最近在学习python 爬虫方面的知识,网上有一博客专栏专门写爬虫方面的,看到用urllib请求有道翻译接口获取翻译结果。发现接口变化很
- 如果进入了shell交互窗口,python的退出方式只能够用函数不能够用命令,这有时候让人感觉到很不习惯。因为函数会比命令多一个括号的输入,
- 说明本文根据https://github.com/liuchengxu/blockchain-tutorial的内容,用python实现的,
- 前言在golang语言中,select语句 就是用来监听和channel有关的IO操作,当IO操作发生时,触发相应的case动作。有了 se
- 本文主要讨论如何计算 tensorflow 和 pytorch 模型的 FLOPs。如有表述不当之处欢迎批评指正。欢迎任何形式的转载,但请务