当前位置:
首页 > temp > 简明python教程 >
-
python基础(10):文件操作
1. 初识文件操作
使⽤python来读写⽂件是非常简单的操作。我们使⽤open()函数来打开⼀个⽂件,获取到⽂
件句柄,然后通过⽂件句柄就可以进⾏各种各样的操作了,根据打开⽅式的不同能够执⾏的操
作也会有相应的差异。
打开⽂件的⽅式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 默认使⽤的是r(只读)模式
回到顶部(go to top)
2. 只读操作(r,rb)
- f = open("护⼠少妇嫩模.txt",mode="r", encoding="utf-8")
- content = f.read()
- print(content)
- f.close()
需要注意encoding表⽰编码集,根据⽂件的实际保存编码进⾏获取数据,对于我们⽽⾔,更
多的是utf-8.
rb:读取出来的数据是bytes类型,在rb模式下,不能选择encoding字符集。
- f = open("护⼠少妇嫩模.txt",mode="rb" )
- content = f.read()
- print(content)
- f.close()
- 结果:
- b'\xe6\xaf\x85\xe5\x93\xa5, \xe5\xa4\xaa\xe7\x99\xbd,
- wuse\n\xe5\x91\xb5\xe5\x91\xb5\n\xe6\x97\xa5\xe5\xa4\xa9'
rb的作⽤: 在读取非⽂本⽂件的时候,比如读取MP3、图像、视频等信息的时候就需要⽤到rb。因为这种数据是没办法直接显⽰出来的,在后⾯我们⽂件上传下载的时候还会⽤到,还有,我们看的直播,实际上都是这种数据。
绝对路径和相对路径:
1. 绝对路径:从磁盘根⽬录开始⼀直到⽂件名。2. 相对路径:同⼀个⽂件夹下的⽂件,相对于当前这个程序所在的⽂件夹⽽⾔,如果在同⼀个⽂件夹中,则相对路径就是这个⽂件名,如果在上⼀层⽂件夹,则要../。
我更推荐⼤家使⽤相对路径,因为在我们把程序拷⻉给别⼈使⽤的时候,直接把项⽬拷⻉走
就能运⾏,但是如果⽤绝对路径,那还需要拷⻉外部的⽂件。
读取⽂件的⽅法:
2.1 read()
read():将⽂件中的内容全部读取出来。弊端: 占内存,如果⽂件过⼤,容易导致内存崩溃。
- f = open("../def/哇擦.txt", mode="r", encoding="utf-8")
- content = f.read()
- print(content)
- 结果:
- 友谊地久天⻓,
- 爱⼀点,
- 可惜我是⽔瓶座
- ⼀⽣中最爱
2.2 read(n)
read(n):读取n个字符,需要注意的是,如果再次读取,那么会在当前位置继续去读⽽不
是从头读,如果使⽤的是rb模式,则读取出来的是n个字节。
- f = open("../def/哇擦.txt", mode="r" encoding="utf-8")
- content = f.read(3)
- print(content)
- 结果:
- 友谊地
- f = open("../def/哇擦.txt", mode="rb")
- content = f.read(3)
- print(content)
- 结果:
- b'\xe5\x8f\x8b'
- f = open("../def/哇擦.txt", mode="r", encoding="utf-8")
- content = f.read(3)
- content2 = f.read(3)
- print(content)
- print(content2)
- 结果:
- 友谊地
- 久天⻓
2.3 readline()
readline():⼀次读取⼀⾏数据。注意: readline()结尾,注意每次读取出来的数据都会有⼀
个\n,所以呢,需要我们使⽤strip()⽅法来去掉\n或者空格。
- f = open("../def/哇擦.txt", mode="r", encoding="utf-8")
- content = f.readline()
- content2 = f.readline()
- content3 = f.readline()
- content4 = f.readline()
- content5 = f.readline()
- content6 = f.readline()
- print(content)
- print(content2)
- print(content3)
- print(content4)
- print(content5)
- print(content6)
- 结果:
- 友谊地久天⻓,
- 爱⼀点,
- 可惜我是⽔瓶座
- ⼀⽣中最爱
2.4 readlines()
readlines():将每⼀⾏形成⼀个元素,放到⼀个列表中,将所有的内容都读取出来,所以
也是,容易出现内存崩溃的问题,不推荐使⽤。
- f = open("../def/哇擦.txt", mode="r", encoding="utf-8")
- lst = f.readlines()
- print(lst)
- for line in lst:
- print(line.strip())
2.5 循环读取
这种⽅式是组好的,每次读取⼀⾏内容,不会产⽣内存溢出的问题。
- f = open("../def/哇擦.txt", mode="r", encoding="utf-8
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数