Python入门篇【文件处理】

Python【文件处理】


文章目录


提示:以下是本篇文章正文内容,下面案例可供参考

一、编码定义

编码是一种规则集合,记录了内容和二进制间进行相互转换的逻辑。
通过使用编码技术(密码本)将文本文件内容内容翻译成0和1来让计算机进行识别处理。
不同的编码规则将内容翻译成二进制也是不同的。

  • UTF-8
  • GBK
  • Big5
  • ...

计算机只认识0和1,通过将文本内容通过编码规则翻译成0和1才能保存在计算机中并进行处理。


二、文件读取关

在操作系统中,以文件为单位管理磁盘中的数据。对文件的操作主要包括【打开,关闭,读取,写入】,步骤分为:

  1. 【打开】文件
  2. 【读写】文件
  3. 【关闭】文件

2.1 open函数

通过open函数可以打开一个已经存在的文件(不存在则创建)。

python 复制代码
# 语法
open(name,mode,encoding)
  • name:文件路径(绝对/相对路径)
  • 打开文件的模式(r,w,a)
    • r:以只读模式打开文件,文件指针在文件的开头【默认】。
    • w:用于写入,从头开始编辑,原有内容覆盖,文件不存在则新建。
    • a:用于追加内容,新的内容会被写入到已有内容之后,文件不存在则新建。
  • 编码格式
python 复制代码
# 文件操作
# 1.查找文件
f = open('E:/FileBases/demo33.txt', 'r', encoding='utf-8')
print(f)

f是open函数的一个文件对象,是py中的一个特殊类型,其拥有属性和方法,通过对象.属性或对象.方法进行调用。


2.1 read,readline,readlines函数

读取文件,不写参数表示读取所有内容,写数字表示读取多少个字节

python 复制代码
# 语法
文件对象.read(num) # num表示读取文件的长度(单位:字节),不写则表示读取文件的所有数据。
文件对象.readlines() # 按照行的方式将文件中的所有内容进行读取,返回一个列表,每一行数据代表一个元素。
python 复制代码
# 文件操作
# 1.查找文件
f = open('E:/FileBases/demo33.txt', 'r', encoding='utf-8')
print(f)
# 2.读取文件,不写参数表示读取所有内容,写数字表示读取多少个字节
print(f.read())

第二个read会在第一个read的结尾处继续输出。
readline:一次输出一行数据。
readlines示例如下:

python 复制代码
# 文件操作
# 1.查找文件
f = open('E:/FileBases/demo33.txt', 'r', encoding='utf-8')
print(f)
# 2.read读取
# print(f.read(1))
# 3.readlines读取
file_list = f.readlines()
print(file_list)

2.3 close函数

通过close关闭文件对象,如果不关闭,文件对象会被一直占用。

python 复制代码
# 语法
文件对象.close()

2.4 with open函数

通过使用with open函数可以在操作完成后,自动执行close函数来关闭文件,避免文件杯一直占用。

python 复制代码
with open('E:/FileBases/demo33.txt', 'r', encoding='utf-8') as f:
    for line in f:
        print(line)

三、总结


相关推荐
大貔貅喝啤酒5 分钟前
Unittest框架使用教程
自动化测试·python
一个简单的TTS开发者22 分钟前
中文TTS工具有哪些-8款主流方案横向对比
人工智能·后端·python·indextts
yunfanleo24 分钟前
temperature 详解:大模型采样参数原理、三种用法与工程实践
人工智能·python·rpa
倔强的石头10629 分钟前
【Linux指南】进程通信系列(二):匿名管道 —— pipe 的本质、fork 继承与四种读写规则
java·linux·运维
调试优选官35 分钟前
2026年IoT物联网开发赛道年度榜单深度解析:D-coding物联网系统定制与源码交付能力专项解读
java·物联网·struts·iot·开发经验
木井巳37 分钟前
【动态规划】三步问题
java·算法·leetcode·动态规划·推荐算法
CarIise39 分钟前
Maven依赖传递与聚合工程
python·r语言·django
小张成长计划..40 分钟前
【Linux】25:线程概念和控制
java·linux·jvm
VidDown9 小时前
24fps 转 25fps 不只是改个数字:帧率转换、PAL/NTSC 与音频补偿
python·网络协议·音视频·视频编解码·视频
蛋蛋的就会顺顺的10 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣