当前位置: 首页 > news >正文

经典题型02——python

文件操作与综合应用

1、文件读写

(1)基础转换并写入(覆盖模式)

def case_conversion_write():# 读取输入text = input("请输入要转换的字符串: ")filename = input("请输入保存文件名(如 output.txt): ")# 选择转换方式print("\n选择转换方式:")print("1. 全大写  2. 全小写  3. 大小写互换")choice = input("请输入选项 (1/2/3): ")# 处理转换if choice == '1':processed = text.upper()elif choice == '2':processed = text.lower()elif choice == '3':processed = text.swapcase()  # 自动反转大小写else:print("无效选项,默认保存原文本")processed = text# 写入文件with open(filename, 'w', encoding='utf-8') as f:f.write(processed)print(f"已保存到文件: {filename}")# 示例用法
case_conversion_write()

(2)手动实现大小写互换(底层原理)

def manual_swapcase(text):result = []for char in text:if char.islower():result.append(char.upper())elif char.isupper():result.append(char.lower())else:result.append(char)  # 非字母字符保留return ''.join(result)# 文件写入部分同上(替换 swapcase() 为 manual_swapcase(text) 即可)

示例输入输出:

输入字符串: Hello Python 3.11!
选择转换方式 3(大小写互换)输出文件内容:
hELLO pYTHON 3.11!

关键点说明:

  1. 转换方法

    • upper():全大写(如 "HELLO")

    • lower():全小写(如 "hello")

    • swapcase():大小写互换(如 "hELLO")

  2. 文件操作

    • 使用 with open(...) 自动管理文件关闭

    • encoding='utf-8' 确保兼容中文及特殊字符

    • 模式 'w' 会覆盖原文件内容,如需追加请改用 'a'

  3. 扩展性

    • 可添加循环处理多行文本

    • 可增加异常处理(如文件路径错误)

(3)文件内容验证代码

def read_file_content(filename):with open(filename, 'r', encoding='utf-8') as f:return f.read()print("文件实际内容:", read_file_content("output.txt"))

(4)进阶需求

如需保留原始文件并创建新文件,可修改保存逻辑:

import osfilename = input("请输入文件名: ")
base, ext = os.path.splitext(filename)
new_filename = f"{base}_converted{ext}"  # 生成新文件名(如 input_converted.txt)with open(new_filename, 'w', encoding='utf-8') as f:f.write(processed)

2、合并文件内容

def merge_and_sort_files():# 获取文件列表input_files = input("请输入要合并的文件名(用空格分隔): ").split()output_file = input("请输入合并后的输出文件名(如 merged.txt): ")all_lines = []# 循环读取每个文件for filename in input_files:try:with open(filename, 'r', encoding='utf-8') as f:lines = f.readlines()all_lines.extend([line.strip() for line in lines if line.strip()])except FileNotFoundError:print(f"警告:文件 {filename} 不存在,已跳过")except Exception as e:print(f"读取 {filename} 时发生错误: {str(e)}")# 去重并按字母顺序排序sorted_lines = sorted(list(set(all_lines)))  # 去重排序# sorted_lines = sorted(all_lines)  # 保留重复项# 写入结果文件with open(output_file, 'w', encoding='utf-8') as f:f.write('\n'.join(sorted_lines))# 打印结果到屏幕print(f"\n合并完成!共合并 {len(input_files)} 个文件,生成 {len(sorted_lines)} 行")print("前10行预览:")print('\n'.join(sorted_lines[:10]))# 示例用法
if __name__ == "__main__":merge_and_sort_files()

功能说明

  1. 输入处理

    • 支持同时输入多个文件名(用空格分隔)

    • 自动处理无效文件名并给出警告

    • 示例输入:file1.txt file2.txt file3.txt

  2. 核心处理

    • 自动去除空行和前后空格

    • 默认进行 去重排序(如需保留重复项,注释 set() 部分)

    • 按字母顺序排序(区分大小写,大写字母在前)

  3. 输出功能

    • 将结果写入指定输出文件

    • 显示合并统计信息

    • 预览前10行内容

http://www.xdnf.cn/news/153631.html

相关文章:

  • WebSocket + Protobuf 高性能游戏服务端实现
  • 零基础上手Python数据分析 (24):Scikit-learn 机器学习初步 - 让数据预测未来!
  • Weaviate使用入门:从零搭建向量数据库的完整指南
  • 区块链VS传统数据库:金融数据存储的“信任”与“效率”博弈
  • Dify 使用 excel 或者 csv 文件创建知识库
  • 跟着deepseek学golang--Go vs Java vs JavaScript三语言的差异
  • 计算机视觉与深度学习 | LSTM原理及与卡尔曼滤波的融合
  • C++17 折叠表达式
  • IP数据报发送和转发的过程
  • 腾讯云物联网平台
  • Win7 SSL证书问题
  • 小程序Npm package entry file not found?
  • 总账主数据——Part 2 科目-2
  • 【落羽的落羽 C++】vector
  • 算法习题-力扣446周赛题解
  • 通过门店销售明细表用Python Pandas得到每月每个门店的销冠和按月的同比环比数据
  • 搜广推校招面经八十二
  • Springboot集成SSE实现消息推送+RabbitMQ解决集群环境下SSE通道跨节点事件推送问题
  • 计算机网络 | Chapter1 计算机网络和因特网
  • CANape与MATLAB数据接口技术详解
  • Java进阶--面向对象设计原则
  • 基于html-css-js的尚有选页面源码详细
  • 如何解决IDE项目启动报错 error:0308010C:digital envelope routines::unsupported 问题
  • 图论---LCA(倍增法)
  • 从新手到高手:小程序开发进阶技巧分享
  • SQL 查询进阶:WHERE 子句与连接查询详解
  • Myweb项目——面试题总结
  • 多模态大语言模型arxiv论文略读(四十二)
  • ZYNQ笔记(十四):基于 BRAM 的 PS、PL 数据交互
  • Pygame字体与UI:打造游戏菜单和HUD界面