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原理:

  1. 文件操作是通过软件将文件从硬盘读到内存
  2. 写入文件的操作也都是存入内存缓冲区buffer(内存速度快于硬盘,如果写入文件的数据都从内存刷到硬盘,内存与硬盘的速度延迟会被无限放大,效率变低,所以要刷到硬盘的数据我们统一往内存的一小块空间即buffer中放,一段时间后操作系统会将buffer中数据一次性刷到硬盘)
  3. 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-文件读写操作相关推荐

  1. python中的文件读写操作

    python中的文件读写操作 思维导图 Python读写CSV文件 csv文件是什么? CSV(Comma Separated Values)全称逗号分隔值文件是一种简单.通用的文件格式,被广泛的应用 ...

  2. 带你学python基础:文件读写,俗称IO操作

    这一节讲个挺有意思的知识,至少在我以前刚刚接触编程的时候,对于文件操作还是觉得很有意思的事情,这也许是有一种操作文件的激情吧,希望看到这篇文章的读者也会有这样的激情,说明还是很有兴趣的,当然,就算没有 ...

  3. Python学习入门基础:文件读写操作、模块和包、异常

    一.文件 文件的概念 文件的基本操作 文件/文件夹的常用操作 文本文件的编码方式 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多 ...

  4. python 中的文件读写操作 and 例题

    一.概述 在文件的读写操作中,python是相对容易学的,python对文件进行操作只需要使用open()创建一个file流对象,用这个对象对文件进行读和写操作.open()有两个参数,一个是url是 ...

  5. cfile清空文件内容_体育老师学编程(第11天)python常用的文件读写操作

    学习内容:python文件处理 一.什么是文件: 前边学习了计算机的存储设备分为内存和硬盘两种,内存容量小,断电就丢失,我们若想长期存储一段内容,就需要存到硬盘中,那么存入的方式就是以文件形式存入的. ...

  6. 【Python基础】文件读写

    IO操作的类型 文件读写是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘. 读写文件就是请 ...

  7. python 基础之文件读操作

    创建一个名为'尘曦'的文件内容如下 Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. ...

  8. Python基础灬文件常用操作

    文件常用操作 文件内建函数和方法 open() :打开文件 read():输入 readline():输入一行 seek():文件内移动 write():输出 close():关闭文件 写文件writ ...

  9. Python基础:文件的操作

    一.python可以在不导入任何模块的情况下对文件完成读.写.追加,替换(稍复杂). 二.打开文件: 1.f = open('text.txt') 这种方式打开,操作完后需要使用f.colse()关闭 ...

  10. python高级语法 - 文件读写操作及其持久化

    文件 长久保存信息的一种数据信息集合(持久化) 常用操作 打开关闭(文件一旦打开,需要关闭操作) 读写内容 查找 open 函数 open函数负责打开文件,带有很多参数 第一个参数:必须有,文件的路径 ...

最新文章

  1. CVPR 2021 | Involution:超越 Convolution 和 Self-attention 的神经网络新算子
  2. 怎样在CSDN博客里插入代码块并且让代码有颜色,显示高亮?(只需要指定语言种类就好,附详细方法)
  3. centos 编译nginx php mariadb,centos7安装nginx+mariadb+php-fpm
  4. 1625 数字金字塔
  5. 7月9日王者荣耀服务器维护,王者荣耀 7月9日体验服停机更新公告
  6. 我理解的invoke和begininvoke
  7. 如何:通过现有代码创建 C++ 项目
  8. CentOS 7上搭建Spark3.0.1+ Hadoop3.2.1分布式集群
  9. day 67 django 之ORM 增删改查基础
  10. html5证书,免费获得微软MCSD证书赶快行动吧!_html5教程技巧
  11. Python获取日期列表中每一天中最大的时刻对应的日期时间戳
  12. stm32与计算机串口通信,STM32串口通信协议
  13. [BZOJ1488][HNOI2009]图的同构(dfs+置换群+数论+组合数学)
  14. 注意力机制论文:CCNet: Criss-Cross Attention for Semantic Segmentation及其PyTorch实现
  15. 解决No thread-bound request found: Are you referring to request attributes outside of an actual web...
  16. css实现气泡框小尾巴
  17. Spectral–spatial hyperspectral image classification
  18. Ubuntu 18.04 服务器版安装桌面及软件
  19. python文件名可以用中文吗_python对中文路径/文件名的重命名
  20. 3t硬盘分区 Linux win,3TB使用大难题 得先学会怎么分区_内存硬盘行情-中关村在线...

热门文章

  1. Spring模板对象之RedisTemplate(Spring整合jedis)
  2. IntelliJ IDEA 问题总结之二 —— 快捷键、主题样式、导出jar、sqlite
  3. 【flutter】学习之路(一)环境的搭建
  4. #pragma multi_compile_fwdbase会增加很多个shader variants
  5. java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded/FilterRegistrationBean
  6. 计算机组成原理——指令流水线
  7. Leetcode题解(22)
  8. 关于控件的AutoSize属性影响界面布局的问题解决
  9. Debian 忘记root密码的处理(passwd:command not found)
  10. 根据方法名执行方法的例子