• 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简单直观,适用于小量的字符输入,但没有错误处理机制。
  • 相关阅读:
    React教程之 React 中 Render Props 和高阶组件HOC的详细介绍
    ProTable高级表格获取表单数据
    「随笔」Vue技能树测评 # CSDN 技能树评测征文
    朋友圈如何设置定时发送?
    2022 年最受瞩目的新特性 CSS @layer 到底是个啥?
    nginx网站服务
    elasticsearch之使用正则表达式自定义分词逻辑
    【LLM工程篇】deepspeed | Megatron-LM | fasttransformer
    K-Means++代码实现
    【2023年数学建模国赛】C题解题思路
  • 原文地址:https://blog.csdn.net/yechuanhui/article/details/133693548