Python文件操作笔记

 #创作灵感#

  • 搬运自己的原创文章到这
  • 写技术笔记巩固知识要点

1. 文件的编码

UTF-8是目前全球通用的编码格式

除非有特殊需求,否则,一律以UTF-8格式进行文件编码即可。

2. 文件的读取

2.1. 基本语法

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

open(name,mode,encoding)

name:是要打开的目标文件名的字符串(可以包含文件所在的具体位置)

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

encoding:编码格式

f = open('python.txt', 'r', encoding='utf-8')
# encoding的顺序不是第三位,所以不能用位置参数,用关键字参数直接指定

注意:此时的"f"是'open'函数的文件对象

2.2. mode常用的三种基础访问模式

模式

描述

r

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

w

打开一个文件只用于写入。

如果该文件已存在则打开文件,并从开头开始编辑,原有内容会被删除。

如果文件不存在,创建新文件

a

打开一个文件用于追加。

如果该文件已存在,新的内容将会被写入到已有内容之后。

如果文件不存在,创建新文件进行写入

2.3. 读操作相关方法

假设已经有了一个文件对象 f,有一个txt文件(如下)

hello world
abcdefg
aaa
bbb
2.3.1. read()方法

f.read(num)

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

with open("python.txt") as f:
    print(f.read())
    # 输出是
    # hello world
    # abcdefg
    # aaa
    # bbb
2.3.2. readlines()方法

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

f = open('python.txt')
content = f.readlines()
print(content)
f.close()
# 输出结果是
# ['hello world\n', 'abcdefg\n', 'aaa\n', 'bbb\n']
2.3.3. readline()方法

一次读取一行内容

f = open('python.txt')
content = f.readline()
print(f"第一行内容是: {content}")
content = f.readline()
print(f"第二行内容是: {content}")
f.close()
# 输出结果是
# 第一行内容是: hello world
#
# 第二行内容是: abcdefg
#

如上,一次读取一行内容。因为原文件中每一行是’\n‘结尾,所以输出每一行内容时还会换行

2.3.4. for循环读取文件行
for line in open('python.txt'):
    print(line)
# 输出结果是
# hello world
# 
# abcdefg
# 
# aaa
# 
# bbb
#

每一个line临时变量,就记录了文件的一行数据

2.3.5. close()关闭文件对象

这个代码就不展示了吧( f.close() )

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

2.3.6. with open 语法
with open("python.txt") as f:
    lines = f.readlines()
print(lines)
# 输出是
# ['hello world\n', 'abcdefg\n', 'aaa\n', 'bbb\n']

这种用法可以在操作完成之后自动关闭close文件,避免遗忘掉close方法

3. 文件的写入

3.1. 写操作快速入门
# 1.打开文件
f = open("python.txt", 'w')
# 2.文件写入
f.write("hello")
# 3.内容刷新
f.flush()

注意:

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

使用'w'模式时,如果:

那么会:

文件存在

会将原有内容清空

文件不存在

创建新文件

4. 文件的追加

4.1. 追加写入操作快速入门
# 1.打开文件,通过'a'模式打开即可
f = open("python.txt", 'a')
# 2.文件写入
f.write("\ni love you")
# 3.内容刷新
f.flush()

使用'a'模式时,如果:

那么会:

文件存在

追加写入文件

文件不存在

创建新文件

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值