Python之文件操作_读取_编码_os模块

目录

前言

一、文件基本操作

1.什么是文件

2.操作文件的步骤

3.文件的路径

4.open函数操作权限总结

5.文件读取

6.with-open-as

7.文件定位读取

8.文件编码

二、OS模块

1.具体操作

三、文件操作案例

案例1:文件的复制粘贴 

案例2: 文件重命名



前言

今天来介绍一下关于python的文件操作


一、文件基本操作

1.什么是文件

        视频,音频,图片,文本 都是文件。总的来说,文件就是就是存储在持久化硬盘上的一种形式

2.操作文件的步骤

第一步  新建打开一个文件
第二步  编辑文件
第三步  保存退出

open(参数1,参数2)
open函数就是在本地打开一个文件
参数1 选择文件的路径
参数2 打开文件的方式

关闭文件:close()

3.文件的路径

相对路径:以当前操作的文件为起点,去寻找文件
                ./ 上一级目录
                ../ 上上一级目录

绝对路径:以计算机盘符为起点

4.open函数操作权限总结

        只读模式打开文件,读文件内容的指针会放在文件开头

w        只写模式打开文件,若文件存在,打开时会清空文件中原有的内容。

a         以追加模式打开一个文件,对文件只有写入权限,如果文件已经存在,文件指针将放在文件末尾(新写入内容会位于已有内容之后);反之,则会创建新文件。

rb        以二进制格式、采用只读模式打开文件,读文件内容的指针位于文件开头,一般用于非文本文件,如图片、音频文件等。

wb      以二进制格式只写模式打开文件,一般用于非文本文件(如音频文件)

ab       以二进制格式打开文件,并采用追加模式,对文件只有写入权限。如果该文件已存在,文件指针位于文件末尾(新写入文件会位于已有的内容之后);反之,则创建新文件。

r+        读写权限,打开文件后,既可以从头读取文件,也可以从开头向文件中写入新的内容,写入的新内容会覆盖文件中等长的原有内容。

w+       打开文件后,会对原有内容进行清空,并对该文件有读写权限

a+        以读写模式打开文件;如果文件存在,文件指针放在文件末尾(新写入文件会位于已有文件之后);反之,则创建新文件。

rb+      以二进制格式、采用读写模式打开文件,读写文件的指针会放在文件开头,通常针对非文本文件(如音频文件)。

wb+     以二进制格式读写模式打开文件,一般用于非文本文件

ab+      以二进制模式打开文件,并采用追加模式,对文件具有读写权限,如果文件存在,则文件指针位于文件的末尾(新写入文件会位于已有内容之后);反之则创建新文件。

 注意:

操作文件必须存在的模式有:r、rb、r+、rb+。

② 若文件存在,会清空其原有内容(覆盖文件);反之创建新文件的模式有:w、wb、w+、wb+

规律总结:

r:读        w:写        a:追加(写)        b:二进制        +:拥有读写权限

# 打开一个文件并赋予写入数据的权限
file = open("/Python/python_code/05_文件操作/file/123.py", "a")
# 写入数据
file.write("第一个文件写入的语句。")
# 一次写入一行
# file.writelines()
# 关闭文件
file.close()

5.文件读取

file.read(参数)        用于读取文件

参数:一次性读取文件的大小        该方法的返回值为读取到的内容

# 打开一个文件
file = open("./01_文件基本操作.py", "r")
# 读取文件 按字节读完为止
# data = file.read()
print(file.read(1024))
# 将文件按照行来读取
print(file.readlines())
# 关闭文件
file.close()

6.with-open-as

有时候我们会忘记关闭文件,用with open as不需要手动关闭文件,当该语句结束后,系统会自动为我们关闭文件。

with open("./file/text.txt", "w") as file:
    file.write("你真棒!")
    # flush 强制内存进行刷新,将数据写入
    file.flush()

7.文件定位读取

seek (偏移量,方向)

        0 表示从文件头开始处理

        1 表示从当前游标位置开始

        2 表示从文件末尾开始

游标:tell

with open("file/test.txt", "r") as file:
    # 读取文件  读取一个字节
    print(file.read(1))
    print(file.seek(2, 0))
    print(file.tell())
    print(file.read(1))
    print(file.tell())
    print(file.read(1))
    print(file.tell())
    print(file.read(1))
    print(file.tell())

 

8.文件编码

"""
        文件编码  utf-8  国际编码  兼容全球大多数国家的语言
        还有:GBK GB2312

"""
with open("./file/text.txt", "r", encoding="GBK") as file:
    pass

二、OS模块

1.具体操作

 os是python的标准库之一

 先导入模块:

# 导入模块
import os

显示当前文件路径:

print(os.getcwd())

显示当前目录下的所有文件名称,存储到列表中:

list_dir = os.listdir()
for i in list_dir:
    print(i)

 创建文件夹:

os.mkdir("文件夹路径")

 删除文件夹:

os.rmdir("文件夹路径")

 删除文件:

os.remove("文件夹路径")

 重命名文件:

os.rename("旧名称","新名称")

 系统层面执行:

os.system("系统命令行的执行 linux")

 拼接两个路径:

os.path.join("http://www.qq.com","qq")

 获取文件绝对路径:

os.path.abspath("文件路径")

 文件相对路径:

os.path.relpath("文件路径")

 获取文件大小:

os.path.getsize("文件路径")

 判断该文件夹是否存在:

os.path.exists("文件路径")   # 返回值为布尔类型

 判断是不是文件,是不是文件夹,是否是绝对路径:

os.path.isfile("文件路径")
os.path.isdir("文件路径")
os.path.isabs("文件路径")

  获取文件创建时间,访问时间,修改时间:

os.path.getctime("文件路径")
os.path.getatime("文件路径")
os.path.getmtime("文件路径")

三、文件操作案例

案例1:文件的复制粘贴 

"""
    2、使用文件操作完成“对指定文件的复制与粘贴”
"""
with open("./file/text2.txt", "wb") as file2:
    with open("./file/text.txt", "rb") as file1:
        data = file1.read(1024)
        if len(data) != 0:
            file2.write(data)
        print("复制粘贴已完成!")

案例2: 文件重命名

"""
    3、对指定目录下面的文件进行批量重命名,新名称 = 原名称 + python

"""
# 导入模块
import os

# 获取文件路径
path = "/Python/python_code/05_文件操作/file"
# 获取文件夹中所有的文件名称
file_all = os.listdir(path)
# 步骤:依次取出每个文件,并重命名
for i in file_all:
    old_path = path+os.sep+i
    # 每个文件的后缀可能不同,找到文件的后缀下标
    j = old_path.rfind(".")
    str1 = old_path[j:]    # str1为文件名后缀
    str2 = i.split(".")
    # 重命名
    new_path = path+os.sep+str2[0]+"python"+str1
    os.rename(old_path, new_path)

修改前file目录下的文件名称:

 

 修改后:

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TWAS@py

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值