python中文件的基本操作、文件读写

python中文件的基本操作、文件读写

1. 基础操作

1.1 文件概念

文件就是存储在某种长期储存设备上的一段数据。

1.2 基础操作

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

可以只打开和关闭文件,不进行任何读写操作。

1.3 文件对象的方法

1.3.1 open()

创建一个file对象,默认是以只读模式打开。

1.3.2 read(n)

n表示从文件中读取的数据的长度,没有传n值就默认一次性读取文件的所有内容。

1.3.3 write()

将制定内容写入文件。

1.3.4 close()

关闭文件。

1.4 属性

1.4.1 文件名.name

返回要打开文件的文件名,可以包含文件的具体路径。

1.4.2 文件名.mode

返回要打开文件的访问模式。

1.4.3 文件名.closed

检测文件是否关闭,关闭就返回True。

代码示例:

# 1.打开文件
f = open("test.txt")

print(f.name)
print(f.mode)
print(f.closed)


# 2.关闭文件
f.close()
print(f.closed)

执行结果:

test.txt
r
False
True

1.5 访问模式

模式 可做操作 若文件不存在 是否覆盖
r 只能读 报错 -
r+ 可读可写 报错
w 只能写 创建
w+ 可读可写 创建
a 只能写 创建 否,追加写
a+ 可读可写 创建 否,追加写

代码示例:

f = open("test.txt","r")
f.close()
  1. r 只读模式(默认模式):文件必须存在,不存在就会报错。
  2. w 只写模式:文件存在会先清空文件内容,在写入添加内容,不存在就创建新文件再写入添加内容。
  3. +:表示可以同时读写某个文件。
    • 使用+会影响文件的读写效率,开发过程中更多的时候只会以只读、只写的方式来操作文件。
  4. r+:可读写文件,文件不存在就会报错。
  5. w+:先写再读,文件存在就会重新编辑文件,不存在就会创建新文件。
  6. a 追加模式:不存在就创建新文件进行写入,存在则在原有内容的基础上追加新的内容。

2. 读写操作

2.1 read(n)

n表示从文件中读取的数据的长度,没有传n值就默认一次性读取文件的所有内容。

f = open("test.txt")
# print(f)
# 1.read()方法
print(f.read())
print(f.read(5))
f.close()

2.2 readLine()

一次读取一行内容,方法执行完,会把文件指针移动到下一行,准备再次读取。

f = open("test.txt")
# print(f.readline())
# print(f.readline())
# print(f.readline())
while True:
    line = f.readline()
    if not line:
        break
    print(line)
f.close()

执行结果:

bingbing18

susu18

-1

2.3 readLines()

按照行的方式一次性读取全部内容,返回的是一个列表,每一行就是列表中的一个元素。

f = open("test.txt")
text = f.readlines()
print(text)
print(type(text))
f.close()

执行结果:

['bingbing18\n', 'susu18\n', '-1']
<class 'list'>

2.4 write()

写入内容。

f = open("test.txt")
# print(f.readline())
# print(f.readline())
# print(f.readline())
while True:
    line = f.readline()
    if not line:
        break
    print(line)
f.close()

执行结果:

bingbing18

susu18

-1

2.5 tell()&seek()

文件指针:标记从哪个位置开始读取数据。

tell():显示文件内当前位置,即文件指针当前位置。

seek(offset, whence):移动文件读取指针到指定位置。

  • offset:偏移量,表示要移动的字节数。
  • whence:起始位置,表示移动字节的参考位置,默认是0,0代表文件开头作为参考位置,1代表当前位置作为参考位置,2代表将文件结尾作为参考位置。

seek(0,0)会把文件指针移动到文件开头。

f = open("test.txt", "w+")
f.write("hello world")
pos = f.tell()
print("当前文件指针所在的位置:", pos)
f.seek(0, 0)
print(f.read())
f.close()

执行结果:

当前文件指针所在的位置: 11
hello world

2.6 with open

代码执行完,系统会自动调用f.close(),可以省略文件关闭步骤。

seek(0,0)会把文件指针移动到文件开头。

with open("test.txt", "r") as f:
    print(f.read())
    print(f.closed)
print(f.closed)

执行结果:

hello world
False
True

3. 编码格式

file对象的encoding参数的默认值与平台有关,比如windows上默认字符编码为GBK。

encoding表示编码集,根据文件的实际保存编码进行获取数据,对于我们而言,更多使用的是UTF-8。

with open("test.txt", "w",encoding="utf-8") as f:
    f.write("冰冰18岁\n")

with open("test.txt", "r",encoding="utf-8") as f:
    print(f.read())

案例:图片复制 ‘rb’

"""
1. 读取图片
图片是一个二进制文件,使用二进制模式打开
2. 写入图片
写入图片也是二进制模式
"""

# 读取图片
with open("test.jpg", "rb") as f:
    img = f.read()
    print(img)
# 写入图片
with open("test2.jpg", "wb") as f:
    f.write(img)
    print("写入成功")

4. 目录常用操作

要导入模块os。

代码示例:

import os
# 1.文件重命名
os.rename("test.txt", "test1.txt")

# 2.删除文件
os.remove("test1.txt")

# 3.创建文件夹
os.mkdir("test")

# 4.获取当前目录
print(os.getcwd())

# 5.获取目录列表
print(os.listdir())

# 6.删除文件夹
os.rmdir("test")

4.1 os.rename()

os.rename(旧文件名,新文件名):文件重命名。

4.2 os.remove()

os.remove(目标文件名):删除文件。

4.3 os.mkdir()

os.mkdir(文件夹名):创建文件夹。

4.4 os.getcwd()

os.getcwd():获取当前目录。

4.5 os.listdir()

os.listdir(目录):获取目录列表。

4.6 os.rmdir()

os.rmdir(文件夹名):删除文件夹。

posted @   零の守墓人  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示