博客
关于我
08 Python文件
阅读量:798 次
发布时间:2023-04-02

本文共 2557 字,大约阅读时间需要 8 分钟。

文件编码与字符集

1.1 文件分类

文件可以根据其存储格式和使用场景进行分类:

  • 文本文件:专门存储文本字符数据,如.txt.ppt.Excel等文件格式。
  • 二进制文件:包含非文本数据,通常以二进制形式存储,需要了解文件结构和序列化规则才能正确读取,如.exe文件。

1.2 文件编码

文件编码是将逻辑上的内容转换为机器可理解的二进制形式。常见的文件编码方式包括:

  • UTF-8:广泛应用于文本文件,支持多语言字符。
  • ASCII:基本的英文字母编码,适用于单一语言环境。
  • GBK/Big5:中文编码方案,用于简体中文和繁体中文。

1.3 文件读取

文件读取是获取文件内容的重要操作,常用的方法包括:

1.3.1 文件操作步骤

  • 打开文件:使用open()函数,指定文件名、访问模式和编码方式。
  • 读取文件:使用read()readline()readlines()方法读取文件内容。
  • 关闭文件:使用close()方法释放文件资源。
  • 1.3.2 读取示例

    with open("D:/测试.txt", "r", encoding="UTF-8") as f:    print(f.read())    for line in f:        print(line)

    1.3.3 读取方式对比

    • read():读取指定长度的字节或全部内容。
    • readline():逐行读取文件内容。
    • readlines():将每行内容返回为列表。
    • for循环:逐行读取文件内容。

    1.3.4 注意事项

    • 使用with语法自动关闭文件,避免资源泄漏。
    • read()方法的默认行为是移动文件指针,需谨慎使用tell()seek()方法进行定位。

    1.4 文件写入

    文件写入操作需要注意以下几点:

    1.4.1 写入方式

    • w模式:以写入形式打开文件,默认会清空原有内容。
    • w+模式:支持读写操作,允许追加或修改文件内容。

    1.4.2 写入示例

    with open("python.txt", "w") as f:    f.write("hello world")    f.flush()  # 强制将缓冲区内容写入文件

    1.4.3 注意事项

    • 使用flush()方法将缓冲区内容刷新到磁盘,避免数据丢失。
    • 使用close()方法自动关闭文件,并释放资源。

    1.5 文件追加

    文件追加操作适用于需要在文件末尾添加数据的情况:

    1.5.1 模式选择

    • a模式:仅允许在文件末尾追加数据。
    • a+模式:支持读写操作,允许在文件末尾追加数据。

    1.5.2 示例代码

    with open("test1.txt", "a+") as f:    f.write("\n22222这是追加的内容")    f.flush()

    1.6 文件操作综合案例

    案例需求

    将账单文件bill.txt备份为bill.txt.bak,并清除测试数据。

    实现步骤

  • 使用open()函数打开源文件和备份文件。
  • 逐行读取源文件内容,判断是否为测试数据行。
  • 非测试数据行追加到备份文件中。4.关闭文件资源。
  • 示例代码

    with open("bill.txt", "r", encoding="UTF-8") as fr:    with open("bill.txt.bak", "w", encoding="UTF-8") as fw:        for line in fr:            if "测试" in line.split(","):                continue            else:                fw.write(line + "\n")

    2 文件与目录管理

    使用os模块进行文件和目录操作:

    核心函数

    • remove():删除文件或目录。
    • rename():重命名文件或目录。
    • **mkdir()rmdir():创建或删除目录。
    • chdir():更改当前工作目录。
    • listdir():获取当前目录下的文件和目录列表。

    示例代码

    import os# 重命名文件os.rename("old_file.txt", "new_file.txt")# 创建目录os.mkdir("new_folder")# 删除目录os.rmdir("new_folder")# 更改目录os.chdir("new_folder")

    练习1:文件备份

    • 输入:用户提供文件名。
    • 输出:备份文件名为xx[备份].txt
    • 实现:打开文件并读取内容,写入新的备份文件中。

    代码示例

    old_f = input("请输入文件名:")index = old_f.rfind('.')new_f = old_f[:index] + "[备份]" + old_f[index:]with open(old_f, "r", encoding="utf-8") as fr:    with open(new_f, "w", encoding="utf-8") as fw:        while True:            content = fr.read(1024)            if not content:                break            fw.write(content)

    练习2:文件批量改名

    • 需求:添加或删除指定前缀"Python_"
    • 实现:遍历当前目录下的文件,修改或删除相应前缀。

    代码示例

    import osflag = input("请输入0(添加)或1(删除):")for file in os.listdir():    if flag == '0':        new_name = "Python_" + file        os.rename(file, new_name)    elif flag == '1':        new_name = file[7:]        os.rename(file, new_name)

    通过以上内容,用户可以掌握文件编码、读取、写入等操作的核心知识,并通过实践练习进一步巩固所学内容。

    转载地址:http://yoefk.baihongyu.com/

    你可能感兴趣的文章
    oracle在日本遇到的技术问题
    查看>>
    Oracle在线重定义
    查看>>
    oracle基础 管理索引
    查看>>
    ORACLE多表关联UPDATE 语句
    查看>>
    Oracle多表查询与数据更新
    查看>>
    oracle如何修改单个用户密码永不过期
    查看>>
    oracle字符集
    查看>>
    oracle存储参数(storage子句)含义及设置技巧
    查看>>
    Oracle学习
    查看>>
    Oracle学习第五课
    查看>>
    Oracle安装、Navicat for Oracle、JDBCl连接、获取表结构
    查看>>
    ORACLE客户端连接
    查看>>
    oracle常用SQL——创建用户、表空间、授权(12C)
    查看>>
    Oracle数据库异常--- oracle_10g_登录em后,提示java.lang.Exception_Exception_in_sending_Request__null或Connection
    查看>>
    oracle数据库异常---SP2-1503: 无法初始化 Oracle 调用界面 SP2-1503: 无法初始化 Oracle 问题的解决办法
    查看>>
    oracle数据库笔记---oracleweb视图使用流程,及plsql安装
    查看>>
    oracle数据库笔记---pl/sql的基础使用方法
    查看>>
    Transformer 架构解释
    查看>>
    Oracle数据库表空间 数据文件 用户 以及表创建的SQL代码
    查看>>
    Oracle数据库验证IMP导入元数据是否会覆盖历史表数据
    查看>>