python 几个关于文件操作的例子

这篇博客介绍了Python在文件操作方面的几个实用例子,包括如何实现文件剪切、邮编查询(通过二分查找读取youbian.txt数据)、逆序储存文本内容以及数据持久化在学生管理系统中的应用。通过这些实例,读者可以深入理解Python在文件处理上的能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Python实现文件剪切

Python代码实现将某一个路径下的某种格式文件 剪切到其他路径下

import os


def shear():
    start_path = input('请输入你要剪切文件的文件路径\n>>>')
    goal_path = input('请输入你要剪切到的文件路径\n>>>')
    file_hz = input('请输入要过滤的文件格式(例如mp3)\n>>>')

    filenames = os.listdir(start_path)
    for filename in filenames:
        if os.path.splitext(filename)[-1] != ('.'+file_hz):
            continue
        start_path_filename = os.path.join(start_path, filename)
        goal_path_filename = os.path.join(goal_path, filename)
        with open(start_path_filename, 'rb') as file1:
            file_b = file1.read()
        print(f'{
     
     start_path_filename}读取成功')
        with open(goal_path_filename, 'wb') as file2:
            file2.write(file_b)
        print(f'{
     
     goal_path_filename}存写成功')
        os.remove(start_path_filename)
        print(f'{
     
     start_path_filename}剪切成功')
    print('剪切完毕')


if __name__ == '__main__':
    shear()

2.Python实现邮编查询地址的操作

读取 youbian.txt 文件中的数据,使用二分查找, 完成邮编查询的操作

def load_zip_code():
    with open(r'youbian.txt', 'r', encoding='utf-8') as file:
        load_zips_list = eval(file.read())
    return load_zips_list


# 二分查找
def half_search(data_list, zip_code):
    data_list_len = len(data_list)
    halve_v = data_list[data_list_len // 2][0]
    if halve_v < zip_code:
        zip_code_address = half_search(data_list[data_list_len // 2 + 1
<think>好的,用户想要关于Python文件操作的练习题或常见问题。我需要先回顾一下相关的引用内容,看看有没有适合的信息。 首先,引用[2]、[4]、[5]都提到了文件操作的具体例子,比如读取、写入、复制文件,还有异常处理。这些都是常见的操作,可以用来设计练习题。比如复制文件到另一个文件,统计特定单词出现次数,或者在文件开头添加内容。 然后,常见问题方面,用户可能会问不同模式的区别,比如rrb的区别,如何处理大文件,或者编码问题。引用[3]提到内置函数文件目录操作,这部分可能涉及模块的使用,比如os模块处理路径,或者json模块处理数据存储。 还要考虑异常处理,比如在文件操作中加入try-except块,这是引用[2][4]中提到的。此外,引用[5]里的代码示例中使用了stripsplit处理每行内容,这可能涉及读取处理的练习题。 练习题需要由浅入深,从基本的读写到更复杂的操作,比如追加内容、处理异常、处理大文件等。常见问题要覆盖模式区别、编码问题、路径处理、性能优化等。 最后,确保每个问题练习都有对应的解决方案或示例代码,参考引用中的例子来构造答案部分。同时,检查是否有遗漏的重要知识点,比如上下文管理器(with语句)的使用,这在引用[2]、[4]、[5]中都有体现,应该包含进去。</think>### Python文件操作练习题与常见问题解答 --- #### 一、基础练习题 1. **文件复制与异常处理** 编写一个函数,将文件 `source.txt` 的内容复制到 `target.txt`,并在控制台输出“复制完成”。要求使用 `try...except` 处理异常。 **示例代码**: ```python def copy_file(): try: with open("source.txt", "r", encoding="utf-8") as f: content = f.read() with open("target.txt", "w", encoding="utf-8") as m: m.write(content) print("复制完成") except Exception as e: print(f"出现错误:{e}") ``` **关键点**:使用 `with` 语句自动关闭文件[^4],异常处理覆盖文件不存在或权限问题[^2]。 2. **统计文件中特定单词的出现次数** 读取文件 `text.txt`,统计单词 “python” 出现的次数。 **示例代码**: ```python def count_word(): try: count = 0 with open("text.txt", "r", encoding="utf-8") as f: for line in f: words = line.strip().split() count += words.count("python") print(f"单词 'python' 出现了 {count} 次") except FileNotFoundError: print("文件不存在") ``` **关键点**:逐行读取避免内存溢出,`strip()` 去除首尾空格[^5]。 3. **在文件开头插入内容** 向文件 `data.txt` 的开头插入一行标题:“数据记录\n---”。 **示例代码**: ```python def insert_title(): try: with open("data.txt", "r+", encoding="utf-8") as f: content = f.read() f.seek(0) f.write("数据记录\n---\n" + content) except IOError: print("文件写入失败") ``` **关键点**:`r+` 模式允许读写,`seek(0)` 移动指针到开头[^4]。 --- #### 二、进阶练习题 1. **合并多个文件内容** 将 `file1.txt`、`file2.txt`、`file3.txt` 的内容合并到 `merged.txt` 中。 **示例代码**: ```python def merge_files(): try: with open("merged.txt", "w", encoding="utf-8") as m: for filename in ["file1.txt", "file2.txt", "file3.txt"]: with open(filename, "r", encoding="utf-8") as f: m.write(f.read() + "\n") except FileNotFoundError: print("某个文件不存在") ``` 2. **处理大文件(逐行读取)** 读取一个超过 1GB 的日志文件 `log.txt`,筛选包含 “ERROR” 的行并保存到 `error_log.txt`。 **示例代码**: ```python def filter_errors(): try: with open("log.txt", "r", encoding="utf-8") as f, \ open("error_log.txt", "w", encoding="utf-8") as m: for line in f: if "ERROR" in line: m.write(line) except IOError: print("文件操作失败") ``` **关键点**:逐行读取避免内存不足[^3]。 --- #### 三、常见问题 1. **`r` `rb` 模式有什么区别?** - `r` 以文本模式读取(自动解码),`rb` 以二进制模式读取(直接返回字节流)。处理图片或非文本文件时需用 `rb`[^3]。 2. **如何避免文件写入时覆盖原有内容?** - 使用追加模式 `a` 或 `a+`,例如 `open("file.txt", "a", encoding="utf-8")`。 3. **如何处理文件路径中的跨平台问题?** - 使用 `os.path.join()` 自动适配不同操作系统的路径分隔符: ```python import os path = os.path.join("folder", "subfolder", "file.txt") ``` 4. **为什么推荐使用 `with` 语句操作文件?** - `with` 会在代码块结束后自动关闭文件,避免资源泄漏[^2][^4]。 5. **读取文件时遇到编码错误怎么办?** - 指定 `errors="ignore"` 跳过错误字符,例如: ```python open("file.txt", "r", encoding="utf-8", errors="ignore") ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值