程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

Python学习基础篇 -6: Python中的文件操作

hfteth 2025-02-20 15:42:27 技术文章 8 ℃

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

  1. 文件有有什么用

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

  1. 文件的操作模式

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

  1. 观仓
    观仓重点在于观,可远观而不可亵玩焉,我们只能看着它,不能动它,在Python中对应 r 模式(全称为read),这是在Python中的默认文件操作模式
  2. 加仓
    加仓重点在于加,即往仓库中加东西。这在 Python中对于的操作模式是 a 模式 (应该是append的缩写吧),使用这种模式后,如果文件不存在就会创建一个新的文件,后面的追加操作会直接将内容追加到文件末尾。
  3. 清仓
    清仓重点在于清,即清理仓库,为什么要清仓呢?可能是之前的仓库太杂了,我想给它改头换面,重新装修它。这在 Python中对应文件的 w 模式,改模式的作用是新建或者清空已经存在的文件,从而得到一个空文件。
  4. 特殊的仓库
    有些仓库是比较特殊的,它里面存储的东西我们可能无法直接看懂,例如图片,这是一种二进制文件,我们是无法通过肉眼观察然后将其翻译为其所展示的图像的,需要借助图片查看器等"翻译软件"才能看懂图像。图片、音频、视频之类的文件就是二进制文件。在 Python中,操作二进制文件需要在上面 3 种模式种加上 b (byte),例如:wb ab rb这三个。
  5. 增强模式
    增强模式是指在单个操作模式,例如 r ,加上一个 + 号 ,就能额外获得其反面技能,比如r的反面是w ,那么 r+表示可读可写 w+ 也表示可读可写 两种不同之处是 r+ 操作的时候文件必须存在,否则程序就会报错。
  6. 文件操作代码实现的几种方式

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()
  1. 文件常用操作方法

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 ,欢迎有疑惑或者对文章有所见解的同学在评论区讨论噢!

Tags:

最近发表
标签列表