目录

什么是文件?

文件概念:

文件类型:

加码解码

文件的基本操作

打开文件 open()

判断文件编码-chardet模块

打开方式-mode

读取文件fp.read()

关闭文件 fp.close()

光标位置

写入文件fp.write()


什么是文件?

文件概念:

:文件是存放在外部介质 (如硬盘、U盘) 上的一组完整信息的集合。这些信息可为各种文字、

图形、图像、电影、音乐,甚至包括病毒程序等。

文件类型:

        文本文件  --》可直接阅读,我们使用记事本打开即可看到文件内容。
        二进制文件 --》文件按照进制编码的形式存储,属于二进制编码,图片即是。
#无论什么类型的文件,在硬盘/内存中都是以二进制的形式存储。
#计算能识别的是二进制,二进制就是机器语言,文字是人类语言。
#编码是人类语言与机器语言的一种映射关系。
#ascii码 --》对英文字符进行编码的一种规则
#unicode编码 --》万国码 --》基本上所有文字都给一个编码
#python2中默认编码为ascii码,python3中默认编码为utf-8
#utf-8 utf-16 utf-32 gbk都是unicode具体实现方式

加码解码

我们可以使用ord()来获取单个字符的ascii值

ord(c, /)
    Return the Unicode code point for a one-character string.

使用encode来获取对应的编码,即加码

#可以看出utf-8编码一个中文字符占了3个字节,而gbk编码一个中文字符只占了2个字节。

我们使用decode来解码

#加码可以使用任何形式,但解码必须使用相同格式才行。

文件的基本操作

打开文件 open()

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

#file 要打开的文件名

#mode 打开文件的方式,是可读还是可写,还是可读可写等

#encoding 文件编码方式

#buffering 缓存方式(int)

判断文件编码-chardet模块

安装:pip install chardet

打开方式-mode

#默认打开方式为只读

# r 只读,文件不存在时报错

# w 覆盖写

# x 创建新文件并写入,文件存在时报错

# a 在文件后面追加内容

# b 二进制模式 rb配合使用

# t 文本模式 tr使用

# + 可读写

读取文件fp.read()

# fp.read() 返回当前光标位置到文末。添加参数为从当前位置读到参数位置# fp.readline() 返回光标当前行的文本,添加参数为当前行到参数位置# fp.readlines() 返回当前光标到文末的内容,作为一个列表返回,每行为一个元素

关闭文件 fp.close()

用 with语句打开,文件在使用完后自动释放

with open(file,'r') as fp:

fp.read()

光标位置

fp.tell() 获取光标位置

fp.seek() 移动光标

写入文件fp.write()

# 我写入了文件,但是在文件中并没有出现内容,这是因为write()操作不会实时写入磁盘,而是将数据放在缓存中,因为程序运行在内存中,内存与磁盘的数据交互速度缓慢且不方便,所以设置了一块缓存区域,内存可以在缓存中获得需要的数据,而不需去磁盘中寻找,内存也可以将数据保存在缓存中,最后通过fp.close()或者fp.flush()来将数据刷到磁盘中

我们可以通过修改open()操作中的buffering来实现多种写入磁盘的方式

我们修改buffering值为1实现换行即落盘 ,再未输入换行符之前,所有的数据都在缓存中。

文件中的数据修改了

我们修改buffering=2 并写入2*4096个a字符

再写入一个a,文件自动落盘了

二十二、Python文件操作相关推荐

  1. 第十二章 Python文件操作【转】

    12.1 open() open()函数作用是打开文件,返回一个文件对象. 用法格式:open(name[, mode[, buffering[,encoding]]]) -> file obj ...

  2. 二十六. Python基础(26)--类的内置特殊属性和方法

    二十六. Python基础(26)--类的内置特殊属性和方法 ● 知识框架 ● 类的内置方法/魔法方法案例1: 单例设计模式 # 类的魔法方法 # 案例1: 单例设计模式 class Teacher: ...

  3. Python入门(二十二)- 常见模块2(正则表达式及容器)

    二十二 常见模块2(正则表达式及容器) 22.1 正则表达式及re模块 正则表达式(Regular Expression)用于描述一种字符串匹配模式(Pattern),它可以用于检查一个字符串是否含有 ...

  4. GUI的演化和python编程——Python学习笔记之二十二

    GUI的演化和python编程--Python学习笔记之二十二 写完了有关长寿的两篇博文,本该去完成哥德尔那个命题六的.对计算机图形界面的好奇,让我把注意力暂时离开那个高度抽象难读的哥德尔,给转到计算 ...

  5. SQL2K数据库开发二十六之存储过程操作创建存储过程(一)

    1.可以使用Transact-SQL中的CREATE PROCEDURE语句创建存储过程,使用该语句的语法为: 2.在查询分析器中执行如下语句创建一个存储过程. 3.在企业管理器中创建存储过程的方法为 ...

  6. Python遥感图像处理应用篇(二十二):Python+GDAL 批量等距离裁剪影像-续

    之前写过一篇按照指定行列号数量来进行影像等距离裁剪的博客,链接如下: Python遥感图像处理应用篇(二十二):Python+GDAL 批量等距离裁剪影像_空中旋转篮球的博客-CSDN博客_pytho ...

  7. JAVA基础知识总结:一到二十二全部总结

    >一: 一.软件开发的常识 1.什么是软件? 一系列按照特定顺序组织起来的计算机数据或者指令 常见的软件: 系统软件:Windows\Mac OS \Linux 应用软件:QQ,一系列的播放器( ...

  8. 2021年大数据Hadoop(二十二):MapReduce的自定义分组

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 MapReduce的自定义分组 需求 分析 实现 第一步: ...

  9. iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2)

    iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2) 此时,当用户轻拍按钮后,一个叫tapButton()的方法就会被触发. 注意:以上这一种方式是动作声明和关联一起进行的,还有一种先 ...

  10. 实验二十二 SCVMM中的SQL Server配置文件

    实验二十二 SCVMM中的SQL Server配置文件 在VMM 2012中管理员可以使用 SQL Server 配置文件,在部署完成虚拟机之后,实现 SQL Server 数据库服务自动化部署并交付 ...

最新文章

  1. Flutter 基础布局Widgets之Baseline、AspectRatio详解
  2. 分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境(服务器端及客户端)(转)...
  3. eclipse中hadoop2.3.0环境部署及在eclipse中直接提交mapreduce任务
  4. STM32之Systick(系统时钟滴答定时器)
  5. [转载] Linux进程基础
  6. oracle spatial下对wkt字符串操作遇到srid的解决方案
  7. HttpServletRequest应用-获取请求参数及解决中文乱码
  8. python自动化测试-python自动化测试
  9. SQL SERVER 2000 数据库备份和SQL Server数据库备份有两种方式,
  10. 步步为营-45-一套增删查改
  11. 下单账号与支付账号不一致_如何申请企业支付宝账号
  12. sql 行政区划关联查询优化_民政部:四季度继续开展优化行政区划设置研究
  13. 弘辽科技:淘宝改SKU图片会影响权重吗?
  14. MyBatis-Plus中CURD常用方法及注解
  15. MPS | 聊聊功率因数校正那些事儿
  16. ResNet网络 残差块的作用
  17. 工行u盾显示316_工行U盾无法被电脑识别(方法全集)
  18. 天翼云linux版本,天翼云Linux主机操作
  19. LInux中的atime、mtime和ctime
  20. 计算机课怎样制作ppt 课件ppt,计算机多媒体课件制作.ppt

热门文章

  1. 【计算机网络】【自顶向下课后习题-4】
  2. BeagleBone Black教程之BeagleBone Black使用到的Linux基础
  3. 淘宝 Api 查询手机号
  4. 音画制作在线html编辑器,在线音画编辑器
  5. ElasticSearch实战踩坑记录
  6. 使用calibre将epub文件转pdf
  7. python pickledill保存数据
  8. Cocos Creator微信小游戏分享功能以及分享回调奖励
  9. 编写Java程序,实现接受三个班各四个学员的成绩并求出平均分
  10. 模块化不等于集装箱式数据中心(技术详解)