python基础语法学习: 文件操作

文章目录

文件操作

计算机只认识 0 和 1, 所以需要将内容翻译为 0 和 1 才能保存在计算机中, 同时也需要编码, 将计算机中保存的 0 和 1, 反向翻译回可以识别的内容

什么是编码

编码就是一种规则集合, 记录了内容和二进制间相互进行转换的逻辑,编码有许多中, 我们最常用的是 UTF-8 编码

文件的操作步骤

我们平时对文件基本操作, 大概可以分为三个步骤

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

open() 打开文件

在python中, 使用 open 函数, 可以打开一个已经存在的文件, 或者创建一个新文件

python 复制代码
open(name, mode, encoding)

name: 要打开的目标文件名的字符串, 可以包含文件所在的具体路径)

mode: 设置打开文件的模式(访问模式): 只读, 写入, 追加等

encoding: 编码格式

例如:

python 复制代码
f = open('python.txt', 'w', encoding = "UTF-8")

此时的 'f' 是 open 函数的文件对象, 对象是 python 中一种特殊的数据类型, 拥有属性和方法, 可以使用对象, 属性或对象, 方法对其进行访问

python 复制代码
f = open('python.txt', 'r', encoding = "UTF-8")
print(type(f))	 # <class '_io.TextIOWrapper'>
mode常用的三中基础访问模式
模式 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,原有内容会被删除。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

文件的读取

read() 方法:

python 复制代码
文件对象.read(num)

num表示要从文件中读取的数据的长度(单位是字节), 如果没有传入 num, ,那么就表示读取文件中所有的数据

python 复制代码
f = open("python.txt", 'r', encoding='UTF-8')
# 读取10个字节
print(f"读取10个字符的内容: {f.read(10)}")

readlines() 方法

readlines 可以按照行的方式把整个文件中的内容进行一次性读取, 并且返回的是一个列表, 其中每一行的数据为一个元素

python 复制代码
f = open("python.txt", 'r', encoding='UTF-8')
content = f.readlines()

print(type(content)) # <class 'list'>

print(content) # ['hello xinyan\n', 'hello world\n', 'hello\n']

f.close()

readline() 方法

一次读取一行

python 复制代码
f = open("python.txt", 'r', encoding='UTF-8')

content = f.readline()
print(content)
content = f.readline()
print(content)
content = f.readline()
print(content)
# 关闭文件
f.close()

输出: 
hello xinyan

hello world

hello
for 循环读取文件行
python 复制代码
f = open("python.txt", "r", encoding = 'utf-8')
for line in f:
    print(line)

文件的关闭

python 复制代码
f.open("python.txt", "r", encoding = "UTF-8") 
f.close()

最后通过close, 关闭文件对象, 也就是关闭对文件的占用

如果不调用close, 同时程序没有停止运行,那么这个文件就将一直被python程序占用

with open 语法

python 复制代码
with open("python.txt", "r", encoding = "UTF-8") as f:
    for line in f:
        print(f"每一行数据是: {line}")

通过在with open 的语句块中对文件进行操作, 可以在操作完成后自动关闭close 文件, 避免遗忘掉close方法

文件的写入

当 mode = "w" 的模式打开文件, 如果不存在文件, 会创建一个新的文件

writh() 写入内容

flush() 刷新内容到硬盘中

文件写入通过 write() 方法

python 复制代码
f = open("python.txt", "w", encoding="utf-8")

f.write("hello world")

f.flush()

注意: 直接调用write, 内容并没有真正写入文件, 而且会积攒在程序的内存中, 称之为缓冲区当调用 flush 的时候, 内容会真正写入文件, 这样做是避免频繁的操作硬盘, 导致效率下降

close() 方法是内置flush() 的功能的, 如果不调用flush() 方法, 但是调用了close() 方法, 同样文件也是会写入内容的

文件的追加写入

打开方式

python 复制代码
f = open("python.txt", "a", encoding="utf-8")

通过write() 方法写入新的内容

python 复制代码
f = open("python.txt", "w", encoding="utf-8")
f.write("hello world")
f.close()

f = open("python.txt", "a", encoding="utf-8")
f.write("\nhello world")
f.close()

文件内容

复制代码
hello world
hello world
相关推荐
猎嘤一号3 分钟前
【2026 最新】Windows 11 右键菜单还原为 Windows 10 经典样式:一条命令、原理、回退与新版说明
windows·python
用户83562907805122 分钟前
使用 Python 在 Word 文档中创建自定义图表
后端·python
kyrie_sakura1 小时前
python学习笔记11 -- 进程和线程
笔记·python·学习
Jialu.2 小时前
中文 NLP 模型部署实战:FastAPI 接口 + Streamlit 看板
人工智能·python·自然语言处理·fastapi
高亦真2 小时前
今天是学习嵌入式的第34天
linux·学习·算法
2501_931819702 小时前
桂柳方言标注公司错误标注溯源追踪体系搭建诉求落地 桂柳方言标注公司学习信实翻译全链路追踪技术
学习·语音识别
Asum1ta3 小时前
K8s 学习环境搭建:Python 与 PyCharm 开发环境配置指南
python·学习·kubernetes
知识汲取者3 小时前
FastAPI 学习教程(写给想学 FastAPI 的 Java 工程师的)
python·学习·fastapi
飞Link3 小时前
动作方法中的分割与过度分割方法全解析(含代码实战与踩坑案例)
人工智能·python·算法·计算机视觉