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
相关推荐
m4Rk_1 小时前
【论文阅读】Agent 记忆机制(38):AMA——用多智能体协作动态选择记忆粒度
论文阅读·人工智能·学习
青春不败 177-3266-05201 小时前
基于R、Python的Copula变量相关性分析及AI大模型应用
人工智能·python·r语言·贝叶斯·统计学·copula
汤姆yu2 小时前
基于python大数据的高校舆情监测系统的设计与实现
大数据·开发语言·python·分享·分析·舆情
Cory.眼2 小时前
Python爬虫实战:从入门到进阶
开发语言·爬虫·python
zjnlswd2 小时前
c# 刘铁猛 学习笔记
笔记·学习
qq_422152572 小时前
Token到底是什么?Tokenizer分词机制与中文token开销入门科普
人工智能·python·深度学习
buyue__3 小时前
Python实现连接MySQL数据库并执行目录下的所有SQL文件,遇到错误时终止执行。
python·mysql
LuminousCPP3 小时前
单链表专题(三)-刷题复盘篇:从快慢指针到环形链表 II 数学推导
数据结构·经验分享·笔记·学习·算法·链表
SuperByteMaster3 小时前
autosar 架构脚本提示语
python