16-python基础5-文件读写操作
1 文件操作基本流程初探
f = open('chenli.txt') #打开文件 first_line = f.readline() print('first line:',first_line) #读一行 print('我是分隔线'.center(50,'-')) data = f.read()# 读取剩下的所有内容,文件大时不要用 print(data) #打印读取内容f.close() #关闭文件
2.文件编码
文件保存编码如下
此刻错误的打开方式
f=open('chenli.txt',encoding='utf-8') f.read()
正确的打开方式
#不指定打开编码,默认使用操作系统的编码,windows为gbk,linux为utf-8,与解释器编码无关
f=open('chenli.txt',encoding='gbk') #在windows中默认使用的也是gbk编码,此时不指定编码也行
f.read()
3.文件打开模式
1 文件句柄 = open('文件路径', '模式')
打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。
打开文件的模式有:
- r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
- w,只写模式【不可读;不存在则创建;存在则清空内容】
- x, 只写模式【不可读;不存在则创建,存在则报错】
- a, 追加模式【可读; 不存在则创建;存在则只追加内容】
"+" 表示可以同时读写某个文件
- r+, 读写【可读,可写】
- w+,写读【可读,可写】
- x+ ,写读【可读,可写】
- a+, 写读【可读,可写】
"b"表示以字节的方式操作
- rb 或 r+b
- wb 或 w+b
- xb 或 w+b
- ab 或 a+b
注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码
4.文件内置函数flush
flush原理:
- 文件操作是通过软件将文件从硬盘读到内存
- 写入文件的操作也都是存入内存缓冲区buffer(内存速度快于硬盘,如果写入文件的数据都从内存刷到硬盘,内存与硬盘的速度延迟会被无限放大,效率变低,所以要刷到硬盘的数据我们统一往内存的一小块空间即buffer中放,一段时间后操作系统会将buffer中数据一次性刷到硬盘)
- flush即,强制将写入的数据刷到硬盘
滚动条:
import sys,timefor i in range(10):sys.stdout.write('#')sys.stdout.flush()time.sleep(0.2)
5.文件内光标移动
注意:read(3)代表读取3个字符,其余的文件内光标移动都是以字节为单位如seek,tell,read,truncate
整理中
6.open函数详解
1. open()语法
open(file[, mode[, buffering[, encoding[, errors[, newline[, closefd=True]]]]]])
open函数有很多的参数,常用的是file,mode和encoding
file文件位置,需要加引号
mode文件打开模式,见下面3
buffering的可取值有0,1,>1三个,0代表buffer关闭(只适用于二进制模式),1代表line buffer(只适用于文本模式),>1表示初始化的buffer大小;
encoding表示的是返回的数据采用何种编码,一般采用utf8或者gbk;
errors的取值一般有strict,ignore,当取strict的时候,字符编码出现问题的时候,会报错,当取ignore的时候,编码出现问题,程序会忽略而过,继续执行下面的程序。
newline可以取的值有None, \n, \r, ”, ‘\r\n',用于区分换行符,但是这个参数只对文本模式有效;
closefd的取值,是与传入的文件参数有关,默认情况下为True,传入的file参数为文件的文件名,取值为False的时候,file只能是文件描述符,什么是文件描述符,就是一个非负整数,在Unix内核的系统中,打开一个文件,便会返回一个文件描述符。
2. Python中file()与open()区别
两者都能够打开文件,对文件进行操作,也具有相似的用法和参数,但是,这两种文件打开方式有本质的区别,file为文件类,用file()来打开文件,相当于这是在构造文件类,而用open()打开文件,是用python的内建函数来操作,建议使用open
3. 参数mode的基本取值
Character | Meaning |
‘r' | open for reading (default) |
‘w' | open for writing, truncating the file first |
‘a' | open for writing, appending to the end of the file if it exists |
‘b' | binary mode |
‘t' | text mode (default) |
‘+' | open a disk file for updating (reading and writing) |
‘U' | universal newline mode (for backwards compatibility; should not be used in new code) |
r、w、a为打开文件的基本模式,对应着只读、只写、追加模式;
b、t、+、U这四个字符,与以上的文件打开模式组合使用,二进制模式,文本模式,读写模式、通用换行符,根据实际情况组合使用、
常见的mode取值组合
1 r或rt 默认模式,文本模式读2 rb 二进制文件3 4 w或wt 文本模式写,打开前文件存储被清空5 wb 二进制写,文件存储同样被清空6 7 a 追加模式,只能写在文件末尾8 a+ 可读写模式,写只能写在文件末尾9 10 w+ 可读写,与a+的区别是要清空文件内容 11 r+ 可读写,与a+的区别是可以写到文件任何位置
7.上下文管理
with open('a.txt','w') as f:pass
with open('a.txt','r') as read_f,open('b.txt','w') as write_f:data=read_f.read()write_f.write(data)
8. 文件的修改
import os with open('a.txt','r',encoding='utf-8') as read_f,\open('.a.txt.swap','w',encoding='utf-8') as write_f:for line in read_f:if line.startswith('hello'):line='哈哈哈\n'write_f.write(line)os.remove('a.txt') os.rename('.a.txt.swap','a.txt')
转载于:https://www.cnblogs.com/NewTaul/p/7049108.html
16-python基础5-文件读写操作相关推荐
- python中的文件读写操作
python中的文件读写操作 思维导图 Python读写CSV文件 csv文件是什么? CSV(Comma Separated Values)全称逗号分隔值文件是一种简单.通用的文件格式,被广泛的应用 ...
- 带你学python基础:文件读写,俗称IO操作
这一节讲个挺有意思的知识,至少在我以前刚刚接触编程的时候,对于文件操作还是觉得很有意思的事情,这也许是有一种操作文件的激情吧,希望看到这篇文章的读者也会有这样的激情,说明还是很有兴趣的,当然,就算没有 ...
- Python学习入门基础:文件读写操作、模块和包、异常
一.文件 文件的概念 文件的基本操作 文件/文件夹的常用操作 文本文件的编码方式 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多 ...
- python 中的文件读写操作 and 例题
一.概述 在文件的读写操作中,python是相对容易学的,python对文件进行操作只需要使用open()创建一个file流对象,用这个对象对文件进行读和写操作.open()有两个参数,一个是url是 ...
- cfile清空文件内容_体育老师学编程(第11天)python常用的文件读写操作
学习内容:python文件处理 一.什么是文件: 前边学习了计算机的存储设备分为内存和硬盘两种,内存容量小,断电就丢失,我们若想长期存储一段内容,就需要存到硬盘中,那么存入的方式就是以文件形式存入的. ...
- 【Python基础】文件读写
IO操作的类型 文件读写是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘. 读写文件就是请 ...
- python 基础之文件读操作
创建一个名为'尘曦'的文件内容如下 Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. ...
- Python基础灬文件常用操作
文件常用操作 文件内建函数和方法 open() :打开文件 read():输入 readline():输入一行 seek():文件内移动 write():输出 close():关闭文件 写文件writ ...
- Python基础:文件的操作
一.python可以在不导入任何模块的情况下对文件完成读.写.追加,替换(稍复杂). 二.打开文件: 1.f = open('text.txt') 这种方式打开,操作完后需要使用f.colse()关闭 ...
- python高级语法 - 文件读写操作及其持久化
文件 长久保存信息的一种数据信息集合(持久化) 常用操作 打开关闭(文件一旦打开,需要关闭操作) 读写内容 查找 open 函数 open函数负责打开文件,带有很多参数 第一个参数:必须有,文件的路径 ...
最新文章
- CVPR 2021 | Involution:超越 Convolution 和 Self-attention 的神经网络新算子
- 怎样在CSDN博客里插入代码块并且让代码有颜色,显示高亮?(只需要指定语言种类就好,附详细方法)
- centos 编译nginx php mariadb,centos7安装nginx+mariadb+php-fpm
- 1625 数字金字塔
- 7月9日王者荣耀服务器维护,王者荣耀 7月9日体验服停机更新公告
- 我理解的invoke和begininvoke
- 如何:通过现有代码创建 C++ 项目
- CentOS 7上搭建Spark3.0.1+ Hadoop3.2.1分布式集群
- day 67 django 之ORM 增删改查基础
- html5证书,免费获得微软MCSD证书赶快行动吧!_html5教程技巧
- Python获取日期列表中每一天中最大的时刻对应的日期时间戳
- stm32与计算机串口通信,STM32串口通信协议
- [BZOJ1488][HNOI2009]图的同构(dfs+置换群+数论+组合数学)
- 注意力机制论文:CCNet: Criss-Cross Attention for Semantic Segmentation及其PyTorch实现
- 解决No thread-bound request found: Are you referring to request attributes outside of an actual web...
- css实现气泡框小尾巴
- Spectral–spatial hyperspectral image classification
- Ubuntu 18.04 服务器版安装桌面及软件
- python文件名可以用中文吗_python对中文路径/文件名的重命名
- 3t硬盘分区 Linux win,3TB使用大难题 得先学会怎么分区_内存硬盘行情-中关村在线...
热门文章
- Spring模板对象之RedisTemplate(Spring整合jedis)
- IntelliJ IDEA 问题总结之二 —— 快捷键、主题样式、导出jar、sqlite
- 【flutter】学习之路(一)环境的搭建
- #pragma multi_compile_fwdbase会增加很多个shader variants
- java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded/FilterRegistrationBean
- 计算机组成原理——指令流水线
- Leetcode题解(22)
- 关于控件的AutoSize属性影响界面布局的问题解决
- Debian 忘记root密码的处理(passwd:command not found)
- 根据方法名执行方法的例子