Python文件操作(六)

简介: Python文件操作(六)

文件基础操作

一.文件编码

编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑。

  • 思考:计算机只能识别0和1,那么我们丰富的文本文件是如何被计算机识别,并存储在硬盘中呢?
  • 答案:使用编码技术(密码本)将内容翻译成0和1存入。

  • 计算机中有许多可用编码:UTF-8,GBK,Big5等不同的编码,将内容翻译成二进制也是不同的
  • 对内容的编码与解码必须使用同一套编码,否则会导致错误的结果

  • UTF-8是目前全球通用的编码格式,除非有特殊需求,否则,一律以UTF-8格式进行文件编码即可。

二.文件操作

在日常生活中,文件操作主要包括打开、关闭、读、写等操作

(1) 文件的打开

  • 操作过程中请务必注意文件路径的书写
  • 只有操作文件与python文件在同一目录才能直接写文件名。
  • 新手建议都写文件的绝对路径,不易导致错误发生。

(1.1) 基本格式

  • 在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件
  • 基本语法:
open(name, mode, encoding)
# name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
# mode:设置打开文件的模式(访问模式):只读、写入、追加等。
# encoding:编码格式(推荐使用UTF-8)
  • 示例代码:
f = open("C:/code/bill.txt", "r", encoding="UTF-8")
# encoding的顺序不是第三位,所以不能用位置参数,用关键字参数直接指定
# f是open函数的文件对象,可以使用对象.属性或对象.方法对其进行访问

(1.2) 打开模式

  • 文件常用的三种基础访问模式,可通过mode指定。
  • r->read(读取),w->write(写入),a->append(追加)

模式

描述

r

只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,原有内容会被删除。如果该文件不存在,创建新文件。

a

打开一个文件用于追加。如果该文件已存在,新的内容将会被写入到已有内容之后。  如果该文件不存在,创建新文件进行写入。

(2) 文件的读取

操作

功能

文件对象.read(num)

读取指定长度字节  不指定num读取文件全部

文件对象.readline()

读取一行

文件对象.readlines()

读取全部行,返回列表

for line in 文件对象

for循环文件行,一次循环得到一行数据

文件对象.close()

关闭文件对象

with open() as f

通过with  open语法打开文件,可以自动关闭

  • 每次读取会从上一次读取结束的位置开始
  • 每次open()中的内容只能被读取一次

(2.1) read方法

  • num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。
  • 语法:文件对象.read(num)
  • 使用示例:
f = open("C:/code/test.txt", "r", encoding="UTF-8")
content = f.read() # 不传入num,读取文件中所有的数据。
print(content)
# 打印
# 观止
# study
f = open("C:/code/test.txt", "r", encoding="UTF-8")
content = f.read(2) # 传入num,读取2字节长度数据。
print(content)
# 打印
# 观止

(2.2) readline()方法

  • 一次读取一行内容
  • 语法:文件对象.readline()
  • 使用示例:
f = open("C:/code/test.txt", "r", encoding="UTF-8")
content = f.readline()
print(f"第一行内容:{content}")  # 打印 第一行内容:观止
content = f.readline()
print(f"第二行内容:{content}")  # 打印 第二行内容:study

(2.3) readlines方法

  • 按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
  • 语法:文件对象.readlines()
  • 使用示例:
f = open("C:/code/test.txt", "r", encoding="UTF-8")
content = f.readlines()
print(content)  # 打印 ['观止\n', 'study']
print(type(content))  # 打印 <class 'list'>

(2.4) for循环读取

  • for循环读取每一行数据
  • 使用示例:
# 每一个line临时变量,就记录了文件的一行数据
for line in open("C:/code/test.txt", "r", encoding="UTF-8"):
    print(line)
# 打印
# 观止
#
# study

(2.5) close关闭文件对象

  • 如果不调用close,同时程序没有停止运行,那么这个文件将一直被Python程序占用,无法操作
  • 使用示例:
f = open("C:/code/test.txt", "r", encoding="UTF-8")
# 需要执行代码
f.close()
  • 代码中不关闭文件对象,且python程序未停止运行,无法对文件删除重命名等操作:

(2.6) 自动close

  • 通过在with open的语句块中对文件进行操作,可以在操作完成后自动关闭close文件
  • 即使出现异常也会自动调用关闭文件操作
  • 语法:with open() as f
  • 使用示例:
with open("C:/code/test.txt", "r", encoding="UTF-8") as f:
  f.readlines()

(3) 文件的写入

  • 使用示例:
f = open("C:/code/test.txt", "w")
# 文件如果不存在,使用”w”模式,会创建新文件
# 文件如果存在,使用”w”模式,会将原有内容清空
# 2.文件写入
f.write('hello world')
# 3. 内容刷新
f.flush()

  • 直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
  • 当调用flush的时候,内容会真正写入文件
  • close()方法,附带flush()方法的功能
  • 这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘)

(4) 文件的追加

  • 使用w模式,每次写入会将原有内容清空,写入新内容
  • 使用a模式,文件不存在会创建文件,文件存在会在最后追加内容写入文件
  • 使用示例:
f = open("C:/code/test.txt", "a")
# 2.文件写入
f.write('study')
# 3. 内容刷新
f.flush()

目录
相关文章
|
25天前
|
存储 Python
Python文件操作(1)
【10月更文挑战第17天】
Python文件操作(1)
|
4月前
|
监控 Java 数据处理
文件操作不再难!Python系统编程实战,带你轻松驾驭文件系统与I/O
【7月更文挑战第31天】在 Python 系统编程中, 文件操作与 I/O 管理至关重要。
56 2
|
24天前
|
数据采集 存储 Python
Python文件操作2
【10月更文挑战第18天】
Python文件操作2
|
5月前
|
开发者 Python
Python基础第七篇(Python的文件操作)
Python基础第七篇(Python的文件操作)
|
2月前
|
存储 Python
Python文件操作
Python文件操作
|
5月前
|
存储 安全 开发者
文件操作?Python让你轻松搞定!
【6月更文挑战第12天】Python编程中的文件操作至关重要,涉及数据存储和系统交互。通过内置的`open()`函数,开发者可轻松处理文件。以只读模式`&#39;r&#39;`为例,使用`with`语句打开并读取文件内容;写入文件则用`&#39;w&#39;`或`&#39;a&#39;`模式。文件对象还支持高级功能,如文件指针移动,允许随机访问。掌握这些技能能提升开发效率。
33 0
|
2月前
|
存储 安全 Python
30天拿下Python之文件操作
30天拿下Python之文件操作
33 1
|
2月前
|
监控 安全 Java
文件操作不再难!Python系统编程实战,带你轻松驾驭文件系统与I/O
【9月更文挑战第13天】在Python系统编程中,文件操作与I/O管理至关重要。本文通过五个实战案例分享最佳实践:高效遍历文件系统、优雅处理文件读写、利用缓冲机制优化性能、并行处理文件加速任务以及异常处理确保程序稳健。使用pathlib、上下文管理器及concurrent.futures等工具,助你轻松掌握Python文件系统与I/O操作,提升编程效率和项目质量。 示例代码展示了如何使用pathlib遍历目录、with语句安全读写文件、控制缓冲区大小、并行处理多个文件以及捕获异常保证程序稳定运行。通过这些技巧,你将能够在实际项目中更加高效地管理和操作文件。
45 6
|
1月前
|
Java 程序员 Python
【Python】文件操作
【Python】文件操作
21 0
|
3月前
|
IDE 测试技术 开发工具
Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作
本文介绍了Python中的文件操作方法,包括使用open()打开文件、close()关闭文件、read()读取内容、readline()读取单行、readlines()读取多行、write()写入内容以及writelines()写入多行的方法。同时,探讨了文件操作模式和编码问题,并扩展了上下文管理器with...as的使用,以及对图片和音频文件操作的思考和练习。
32 1
Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作