python文件读取小练习

小练习

创建一个程序:

  1. 读取”自我介绍.txt”文件
  2. 使用三种不同方法分别读取并显示内容
  3. 统计文件中”Python”这个词出现的次数
  4. 找出文件中最长的一行
def 使用read方法读取(文件名):
    """使用 read() 方法读取文件"""
    print(" 方法1:使用 read() 读取整个文件")
    print("-" * 40)
    
    try:
        with open(文件名, 'r', encoding='utf-8') as file:
            内容 = file.read()
            print(内容)
        return 内容
    except FileNotFoundError:
        print(f"❌ 文件 '{文件名}' 不存在!")
        return None

def 使用readline方法读取(文件名):
    """使用 readline() 方法逐行读取文件"""
    print("
 方法2:使用 readline() 逐行读取")
    print("-" * 40)
    
    try:
        with open(文件名, 'r', encoding='utf-8') as file:
            行号 = 1
            while True:
                行内容 = file.readline()
                if not 行内容:  # 如果读到空字符串,说明文件结束
                    break
                print(f"第{行号}行: {行内容}", end='')
                行号 += 1
    except FileNotFoundError:
        print(f"❌ 文件 '{文件名}' 不存在!")

def 使用readlines方法读取(文件名):
    """使用 readlines() 方法读取所有行到列表"""
    print("
 方法3:使用 readlines() 读取所有行")
    print("-" * 40)
    
    try:
        with open(文件名, 'r', encoding='utf-8') as file:
            所有行 = file.readlines()
            for 行号, 行内容 in enumerate(所有行, 1):
                print(f"第{行号}行: {行内容}", end='')
        return 所有行
    except FileNotFoundError:
        print(f"❌ 文件 '{文件名}' 不存在!")
        return None

def 统计关键词出现次数(文件名, 关键词):
    """统计特定关键词在文件中出现的次数"""
    try:
        with open(文件名, 'r', encoding='utf-8') as file:
            内容 = file.read()
        
        # 不区分大小写统计
        出现次数 = 内容.lower().count(关键词.lower())
        print(f"
 统计结果:")
        print(f"关键词 '{关键词}' 在文件中出现了 {出现次数} 次")
        return 出现次数
    except FileNotFoundError:
        print(f"❌ 文件 '{文件名}' 不存在!")
        return 0

def 找出最长行(文件名):
    """找出文件中最长的一行"""
    try:
        with open(文件名, 'r', encoding='utf-8') as file:
            所有行 = file.readlines()
        
        if not 所有行:
            print("文件为空!")
            return None
        
        最长行 = max(所有行, key=len)
        行号 = 所有行.index(最长行) + 1
        长度 = len(最长行.rstrip())  # 去除末尾换行符后的长度
        
        print(f"
 最长行信息:")
        print(f"第{行号}行是最长的,有{长度}个字符")
        print(f"内容:{最长行.rstrip()}")
        
        return 最长行, 行号, 长度
    except FileNotFoundError:
        print(f"❌ 文件 '{文件名}' 不存在!")
        return None

def 主程序():
    """主程序:执行所有要求的操作"""
    文件名 = "自我介绍.txt"
    
    print(" 文件读取与分析程序")
    print("=" * 50)
    
    # 1. 使用三种方法读取文件
    内容1 = 使用read方法读取(文件名)
    使用readline方法读取(文件名)
    所有行 = 使用readlines方法读取(文件名)
    
    # 2. 统计"Python"出现次数
    统计关键词出现次数(文件名, "Python")
    
    # 3. 找出最长行
    找出最长行(文件名)
    
    print("
" + "=" * 50)
    print("✅ 所有任务完成!")

# 如果文件不存在,先创建一个示例文件
def 创建示例文件():
    """如果文件不存在,创建一个示例的自我介绍文件"""
    try:
        with open("自我介绍.txt", "r", encoding="utf-8"):
            pass  # 文件存在,不需要创建
    except FileNotFoundError:
        print(" 创建示例自我介绍文件...")
        内容 = """✨ 个人简介 ✨
====================
姓名:张三
年龄:25岁
爱好:Python编程、阅读、游泳
技能:Python、数据分析、机器学习
座右铭:Life is short, I use Python!
梦想:成为一名优秀的Python开发者
学习经历:目前正在深入学习Python文件操作和数据分析
===================="""
        
        with open("自我介绍.txt", "w", encoding="utf-8") as file:
            file.write(内容)
        print("✅ 示例文件创建完成!
")

# 运行程序
if __name__ == "__main__":
    创建示例文件()
    主程序()

运行结果示例

当你运行这个程序时,会看到类似这样的输出:

 文件读取与分析程序
==================================================
 方法1:使用 read() 读取整个文件
----------------------------------------
✨ 个人简介 ✨
====================
姓名:张三
年龄:25岁
爱好:Python编程、阅读、游泳
技能:Python、数据分析、机器学习
座右铭:Life is short, I use Python!
梦想:成为一名优秀的Python开发者
学习经历:目前正在深入学习Python文件操作和数据分析
====================

 方法2:使用 readline() 逐行读取
----------------------------------------
第1行: ✨ 个人简介 ✨
第2行: ====================
第3行: 姓名:张三
第4行: 年龄:25岁
第5行: 爱好:Python编程、阅读、游泳
第6行: 技能:Python、数据分析、机器学习
第7行: 座右铭:Life is short, I use Python!
第8行: 梦想:成为一名优秀的Python开发者
第9行: 学习经历:目前正在深入学习Python文件操作和数据分析
第10行: ====================

 方法3:使用 readlines() 读取所有行
----------------------------------------
第1行: ✨ 个人简介 ✨
第2行: ====================
第3行: 姓名:张三
第4行: 年龄:25岁
第5行: 爱好:Python编程、阅读、游泳
第6行: 技能:Python、数据分析、机器学习
第7行: 座右铭:Life is short, I use Python!
第8行: 梦想:成为一名优秀的Python开发者
第9行: 学习经历:目前正在深入学习Python文件操作和数据分析
第10行: ====================

 统计结果:
关键词 'Python' 在文件中出现了 4 次

 最长行信息:
第9行是最长的,有29个字符
内容:学习经历:目前正在深入学习Python文件操作和数据分析

==================================================
✅ 所有任务完成!

代码详解

1. 三种读取方法

read() 方法

  • 一次性读取整个文件内容
  • 返回一个字符串
  • 适合文件较小的情况

readline() 方法

  • 每次读取一行
  • 返回空字符串时表明文件结束
  • 适合大文件或需要逐行处理的情况

readlines() 方法

  • 读取所有行到列表中
  • 每行作为列表的一个元素
  • 方便按行号访问内容

2. 关键词统计

出现次数 = 内容.lower().count(关键词.lower())
  • 使用 lower() 将内容和关键词都转为小写
  • 实现不区分大小写的统计
  • count() 方法统计出现次数

3. 找出最长行

最长行 = max(所有行, key=len)
  • max() 函数找出最大值
  • key=len 指定按字符串长度比较
  • rstrip() 去除行尾的换行符

4. 异常处理

try:
    with open(文件名, 'r', encoding='utf-8') as file:
        # 文件操作
except FileNotFoundError:
    print(f"❌ 文件 '{文件名}' 不存在!")
  • 使用 try-except 处理文件不存在的情况
  • 给用户友善的错误提示

扩展练习

如果你想进一步练习,可以尝试:

  1. 统计所有行的平均长度
  2. 找出包含特定词汇的所有行
  3. 创建一个文件分析报告,包含各种统计信息
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 共1条

请登录后发表评论