前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 。文件有有什么用

文件可以看作一个仓库,仓库的主要作用自然是存取东西,那为什么需要操作文件呢?这是因为代码在执行完毕时,有些数据需要暂时存储,等待下次需要的时候再拿出来,就好像你使用word软件来编辑文档的时候,需要将你的修改存储到word文档里面,以便后续使用,如果不保存,那你的产出很可能就白费了文件的操作模式

还是把文件比作仓库,那对于仓库的操作大概有这么几种:观仓

观仓重点在于观,可远观而不可亵玩焉,我们只能看着它,不能动它,在Python中对应 r 模式(全称为read),这是在Python中的默认文件操作模式

加仓

加仓重点在于加,即往仓库中加东西。这在 Python中对于的操作模式是 a 模式 (应该是append的缩写吧),使用这种模式后,如果文件不存在就会创建一个新的文件,后面的追加操作会直接将内容追加到文件末尾。

清仓

清仓重点在于清,即清理仓库,为什么要清仓呢?可能是之前的仓库太杂了,我想给它改头换面,重新装修它。这在 Python中对应文件的 w 模式,改模式的作用是新建或者清空已经存在的文件,从而得到一个空文件。

特殊的仓库

有些仓库是比较特殊的,它里面存储的东西我们可能无法直接看懂,例如图片,这是一种二进制文件,我们是无法通过肉眼观察然后将其翻译为其所展示的图像的,需要借助图片查看器等"翻译软件"才能看懂图像。图片、音频、视频之类的文件就是二进制文件。在 Python中,操作二进制文件需要在上面 3 种模式种加上 b (byte),例如:wb ab rb这三个。

增强模式

增强模式是指在单个操作模式,例如 r ,加上一个 + 号 ,就能额外获得其反面技能,比如r的反面是w ,那么 r+表示可读可写 w+ 也表示可读可写 两种不同之处是 r+ 操作的时候文件必须存在,否则程序就会报错。

文件操作代码实现的几种方式

r 模式操作

# ############ 请先在代码文件目录创建一个叫做 test.txt 的文件 并在里面写入 Hello 这么一个词并保存

# 指定文件名 可以是 test.txt 和 C:/test.txt 这两种格式(还有相对路径表示方法)

# 如果 文件和代码处于同文件夹可以省略

path = 'test.txt'

# open 函数用法 open(文件路径,操作模式) 操作模式可以省略 默认为 r

# 打开 test.txt 文件

f = open(path)

# read() 方法获取文本文件全部内容

content = f.read()

print(content)

# close()方法关闭文件

f.close()

以上代码的作用是打开 test,txt 这个文件并获取和输出其含有的全部内容

a 模式操作

# 指定文件名 可以是 test.txt 和 C:/test.txt 这两种格式(还有相对路径表示方法)

# 如果 文件和代码处于同文件夹可以省略

path = 'test.txt'

# open 函数用法 open(文件路径,操作模式) 操作模式可以省略 默认为 r

# 以a模式打开 test.txt 文件

f = open(path,'a')

# write 方法写入文件 write里面的参数是要写入的内容 这里操作的是文本文件 写入的类型是字符串

f.write('World!')

print('World 已写入文件里面!')

f.close()

以上代码的作用是在 test.txt 这个文件里面写入 ‘World!’ 这个字符串,特别要注意的是 open函数里面多了一个字符串类型的参数,它就是显式的操作模式,如省略则默认为 r

w 模式操作

python # 指定文件名 可以是 test.txt 和 C:/test.txt 这两种格式(还有相对路径表示方法) # 如果 文件和代码处于同文件夹可以省略 path = 'test.txt' # open 函数用法 open(文件路径,操作模式) 操作模式可以省略 默认为 r # 以w模式打开 test.txt 文件 不存在则新建 存在则清空 f = open(path,'w') print('文件已创建或清空!') # close方法关闭文件 f.close()

以上代码的作用是新建一个叫做 test.txt 的文件 如果已经存在就清空这个文件,运行之后再打开改文件 可以看到内容为空

rb 模式操作

# ############ 请先在代码文件目录创建一个叫做 test.txt 的文件 并在里面写入 Hello 这么一个词并保存

# 指定文件名 可以是 test.txt 和 C:/test.txt 这两种格式(还有相对路径表示方法)

# 如果 文件和代码处于同文件夹可以省略

path = 'test.txt'

# open 函数用法 open(文件路径,操作模式) 操作模式可以省略 默认为 r

# 以wb的方式打开 test.txt 文件 test.txt 文件里面的可看到的内容是 Hello

f = open(path,'rb')

# read() 方法获取文本文件全部内容

content = f.read()

print(content)

# 输出结果 b'Hello'

# close()方法关闭文件

f.close()文件常用操作方法

5.读取文件报错的可能原因

对于文本文件,读取报错的可能原因是文件的编码问题 ,例如你的文件可能是用 UTF-8 的方式编码的,但文本文件的默认打开方式可能是 UTF-8 ,这时候可能有些不兼容,你需要做的是在open()函数里面指定一个编码方式,例如 UTF-8 和GBK等,演示代码如下

path = 'test.txt'

# encoding = 后面加一个表示编码方式的字符串 例如 UTF-8 GBK utf-8 等等

f = open(path,'r',encoding = 'utf-8')

# read() 方法获取文本文件全部内容

print(f.read())

# close()方法关闭文件

f.close()

以上是对Python中的一些文件基本操作的讲解 其中还有一个 with 操作方法没有说,这个同学们可以自己去了解,后面在实战系列中会有所涉及。

最后,本基础系列文章可能还有两篇就结束了,后面的重心会转移到实战专栏,让大家更好地运行 Python ,欢迎有疑惑或者对文章有所见解的同学在评论区讨论噢!

python中文件操作中不同的文件操作有何差异_Python学习基础篇 -6: Python中的文件操作...相关推荐

  1. python中二进制文件_Python学习基础篇 -6: Python中的文件操作

    前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 文件有有什么用 文件可以看作一个仓库 ...

  2. else应输入一个语句是什么意思_Python学习基础篇 -4: Python中的转弯---分支语句

    前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 背景:对于该系列文章的前三篇,自己读 ...

  3. python传递参数格式_Python语言学习基础篇之Python发送Post请求之根据参数位置传参、数据类型、不同方式传参...

    本文主要介绍了Python语言学习基础篇之Python发送Post请求之根据参数位置传参.数据类型.不同方式传参,通过具体的内容向大家展现,希望对大家Python语言的学习有所帮助. 目录 一.验证 ...

  4. python语法认为条件x小于y小于z是合法的_Python初识——基础篇

    一.Python介绍 1.1.什么是编程语言 其实,程序指的就是一系列指令,用来告诉计算机做什么,而编写程序的关键在于,我们需要用计算机可以理解的语言来提供这些指令. 为了有效避开所有影响给计算机传递 ...

  5. python有哪些软件包用来考察变量之间的相关性_Python语言基础考察点:python语言基础常见考题(一)...

    一.python是静态还是动态类型?是强类型还是弱类型? 1.动态强类型语言(不少人误以为是弱类型) 不要傻傻分不清 2.动态还是静态指的是编译期还是运行期确定类型 3.强类型指的是不会发生隐式类型转 ...

  6. Python爬虫你需要积累这些基本知识_Python学习基础路线

    Python爬虫你需要积累这些基本知识_Python学习基础路线 爬虫定义.分类和流程 爬虫定义 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则, ...

  7. MySQL基础篇——第11章 DML(数据操作):增删改

    MySQL基础篇--第11章 DML(数据操作):增删改 1. 插入数据(增) INSERT INTO ... 使用 INSERT INTO 语句向表中插入数据(记录) 1.1 方式1:VALUES ...

  8. python从第二行开始读取文件_python学习笔记—— 从第二行开始读文件

    原博文 2018-04-16 16:26 − filename = info.txtf = open('info.txt') next(f) for line in f: print(line)nex ...

  9. python字典数据类型笔记_Python学习笔记整理(六)Python中的字典

    一.字典介绍 字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通 ...

最新文章

  1. 【原创】gooogleman亲自参与设计的三星Cortex A8 S5pv210 之Sate210核心板硬件用户手册(作者:gooogleman)...
  2. java中友元类_友元类成员的依赖关系|循环依赖
  3. Serverless 的喧哗与骚动(一)附Serverless行业发展回顾
  4. ZAB协议选主过程详解
  5. Android之让图片匀速旋转效果
  6. Fantasia (Tarjan+树形DP)
  7. ftp上传文件出现“sftp: cannot open /usr/SmartStore_test/1.zip to write”
  8. Android Studio(9)--添加应用资源
  9. SQL Server 中 GO 的用法
  10. ScalaTour 2.函数
  11. Linux挂载iso文件步骤
  12. apicloud 微信授权在AppLoader中 包名不一致
  13. 视频图像格式YUV详解
  14. pycharm连接github
  15. Linux 进程之如何查看进程详情?
  16. 相关系数excel_如何求组内相关系数ICC?(应用篇)
  17. 点控技术和激光定位技术
  18. 移动应用程序设计基础——数据库实践——简单日记本
  19. 基于mochiweb的chatty聊天室1
  20. 三维模型材质了解一下

热门文章

  1. 《你不知道的JavaScript》-- 精读(五)
  2. 艾欧币 不需繁琐存币不用学习使用钱包
  3. JavaScript实现创建自定义对象的常用方式总结
  4. 绿盟科技发布OpenSSL高危漏洞技术分析与防护方案 G20成员国美国、中国、德国受影响较大...
  5. 因新漏洞问题 Firefox 49发布时间将延期一周
  6. MVC之ActionFilterAttribute自定义属性
  7. Spring中的AOP(三)——基于Annotation的配置方式(一)
  8. WebBrowser内核指定
  9. dea工具debug断点红色变成灰色
  10. Spring @PostConstruct和@PreDestroy实例