• UIC Python期末冲刺|02文件操作1


    题目

    这里有三个使用Python进行文件操作的题目,从简单到难进行排列:

    1. 简单:读取文本文件的内容

      • 创建一个名为"input.txt"的文本文件,包含以下文本:
      This is the first line.
      This is the second line.
      This is the third line.
      
      • 1
      • 2
      • 3
      • 编写一个Python程序,打开这个文件,并打印出文件的内容。
    2. 中等:修改文本文件的内容

      • 使用上述"input.txt"文件。
      • 编写一个Python程序,将文件中的"first"替换为"1st",“second"替换为"2nd”,“third"替换为"3rd”,并将修改后的内容写入一个名为"output.txt"的新文件。
    3. 难:按行数分割文本文件

      • 创建一个名为"large_input.txt"的文本文件,包含多行文本(例如100行或更多)。
      • 编写一个Python程序,将这个文件分割成多个小文件,每个文件包含10行文本。新文件的命名应该反映它们包含的行的范围,例如"output_1_10.txt",“output_11_20.txt”,等等。

    这些问题将让你熟悉Python的文件操作,包括如何读取、修改和写入文件,以及如何处理大文件和分割文件。

    答案

    以下是上述问题的基本解决方案:

    1. 简单:读取文本文件的内容
    # 打开文件,并读取内容
    with open('input.txt', 'r') as file:
        print(file.read())
    
    • 1
    • 2
    • 3
    1. 中等:修改文本文件的内容
    # 打开文件,读取内容,替换词语
    with open('input.txt', 'r') as file:
        text = file.read()
    
    text = text.replace('first', '1st').replace('second', '2nd').replace('third', '3rd')
    
    # 将修改后的内容写入新文件
    with open('output.txt', 'w') as file:
        file.write(text)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. 难:按行数分割文本文件
    # 定义每个小文件应包含的行数
    lines_per_file = 10
    smallfile = None
    with open('large_input.txt') as bigfile:
        for lineno, line in enumerate(bigfile):
            if lineno % lines_per_file == 0:
                if smallfile:
                    smallfile.close()
                small_filename = 'output_{}.txt'.format(lineno + 1)
                smallfile = open(small_filename, "w")
            smallfile.write(line)
        if smallfile:
            smallfile.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    这段代码首先读取"large_input.txt"文件,然后通过enumerate获取每行的索引和内容。当索引除以每个文件的行数的结果为0时(也就是在每个文件的第一行),它会关闭上一个文件(如果存在的话),然后打开一个新文件。然后,它将当前行写入小文件。在遍历所有行之后,如果还有一个打开的文件,它将被关闭。

    请注意,如果在本地环境运行这些代码,您需要确保所提到的 txt 文件在当前工作目录下,否则需要使用完整的文件路径来读取文件。

  • 相关阅读:
    9、MyBatis缓存
    商品标题 内容 向量特征提取
    三相电表倍率是什么?
    C语言再学习 -- 编程规范
    appsecmonkey.com应用安全
    Python 爬虫篇#笔记02# | 网页请求原理 和 抓取网页数据
    面试题-堆栈相关
    我想问问DevEco的预览问题
    git配置
    数据采集与数据预处理(python)概述(一)
  • 原文地址:https://blog.csdn.net/qq_33254766/article/details/130894827