• python经典百题之逐字写文件


    题目:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。

    程序分析

    要实现从键盘输入一些字符,逐个把它们送到磁盘上,直到输入一个#为止,可以使用多种方法。基本思路是不断从键盘获取输入的字符,然后将这些字符逐个写入磁盘文件,直到遇到#字符为止。

    方法1: 使用循环遍历实现

    思路

    1. 打开一个文件用于写入(可以指定文件名)。
    2. 使用无限循环来获取用户的输入字符。
    3. 在每次循环中,获取用户输入的字符。
    4. 如果输入的字符是#,则退出循环。
    5. 否则,将输入的字符写入文件。
    6. 最终关闭文件。

    代码

    filename = input("请输入文件名:")
    with open(filename, 'w') as file:
        while True:
            char = input("请输入字符:")
            if char == '#':
                break
            file.write(char)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    优点

    • 简单直观,易于理解。
    • 可以指定文件名。
    • 适用于小量的字符输入。

    缺点

    • 没有错误处理机制,用户输入不合法字符可能导致程序崩溃。
    • 对于大量字符输入,性能可能会下降,因为每个字符都要写入磁盘。

    方法2: 使用缓冲写入实现

    思路

    1. 打开一个文件用于写入(可以指定文件名)。
    2. 使用缓冲区来积累用户输入的字符。
    3. 在每次循环中,获取用户输入的字符。
    4. 如果输入的字符是#,则将缓冲区中的字符写入文件并退出循环。
    5. 否则,将输入的字符添加到缓冲区中。
    6. 最终关闭文件。

    代码

    filename = input("请输入文件名:")
    with open(filename, 'w') as file:
        buffer = ""
        while True:
            char = input("请输入字符:")
            if char == '#':
                file.write(buffer)
                break
            buffer += char
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    优点

    • 使用缓冲区可以减少文件写入次数,提高性能。
    • 可以指定文件名。
    • 适用于中等数量的字符输入。

    缺点

    • 仍然没有错误处理机制,用户输入不合法字符可能导致程序崩溃。

    方法3: 使用异常处理实现

    思路

    1. 打开一个文件用于写入(可以指定文件名)。
    2. 使用异常处理机制来捕获用户输入字符时可能出现的异常。
    3. 在每次循环中,尝试获取用户输入的字符。
    4. 如果输入的字符是#,则退出循环。
    5. 否则,将输入的字符写入文件。
    6. 添加异常处理,捕获可能的异常并继续循环。
    7. 最终关闭文件。

    代码

    filename = input("请输入文件名:")
    with open(filename, 'w') as file:
        while True:
            try:
                char = input("请输入字符:")
                if char == '#':
                    break
                file.write(char)
            except Exception as e:
                print(f"发生异常:{e}")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    优点

    • 具备基本的错误处理机制,可以处理用户输入不合法字符导致的异常。
    • 可以指定文件名。
    • 适用于大量字符输入。

    缺点

    • 使用异常处理会稍微增加代码复杂度。

    总结和推荐

    • 方法3使用异常处理机制是最好的选择,因为它具备错误处理机制,可以处理用户输入不合法字符导致的异常,同时适用于大量字符输入。
    • 方法2使用缓冲写入也是一种不错的选择,可以提高性能,适用于中等数量的字符输入。
    • 方法1简单直观,适用于小量的字符输入,但没有错误处理机制。
  • 相关阅读:
    匿名信小程序版源码一封来信你的Ta的一封来信表白祝福道歉短信下载源码
    活动回顾 | 数字外贸私享会【上海站】成功举办
    2022.11.23Max Sum Plus Plus HDU - 1024
    Solon 1.6.36 发布,更现代感的应用开发框架
    记录一次SQL函数和优化的问题
    JVM 内存布局详解(荣耀典藏版)
    NSS [HXPCTF 2021]includer‘s revenge
    基于PHP+MYSQL在线小说阅读网的设计与实现
    QT学习_05_各种对话框
    【C++初阶(二)缺省参数与函数重载】
  • 原文地址:https://blog.csdn.net/yechuanhui/article/details/133693548