16.读取指定路径下的txt文档然后合并内容为一个txt文档。

1.题目要求

分别读取路径为 
./middle/phone/base/1_student_0.txt,
./middle/vr/base/1_teacher.txt,
./nearby/phone/base/1_student_0.txt,
./nearby/vr/base/1_teacher.txt,
./outside/phone/base/1_student_0.txt,
./outside/vr/base/1_teacher.txt 
里面的文件,并计算每个文件的行数,然后合并这些文件的内容到一个名为base_together.txt的文件中。
同时,还会输出每个文件的行数以及总行数,最后还会输出合并后文件的行数。
记录文件行数用于验证读取文件数量是否正确。

2.代码实现

# 使用Python的os模块和open函数来合并文件
import os

# 定义要合并的文件列表
file_list = [
    "./middle/phone/base/1_student_0.txt",
    "./middle/vr/base/1_teacher.txt",
    "./nearby/phone/base/1_student_0.txt",
    "./nearby/vr/base/1_teacher.txt",
    "./outside/phone/base/1_student_0.txt",
    "./outside/vr/base/1_teacher.txt",
]

# 定义输出文件名
output_file = "base_together.txt"

# 初始化行数计数器
total_lines = 0

# 使用循环逐个读取文件
for file in file_list:
    # 使用os.path.basename获取文件名
    filename = os.path.basename(file)

    # 打印当前处理的文件名
    print(f"正在处理文件:{filename}")

    # 使用open函数以读模式打开当前文件
    with open(file, 'r') as infile:
        # 计算文件中的行数
        lines = sum(1 for line in infile)

        # 更新总行数计数器
        total_lines += lines

        # 打印当前文件的行数
        print(f"{filename}{lines} 行")

# 打印总行数
print(f"总共有 {total_lines} 行")

# 使用open函数以写模式打开输出文件
with open(output_file, 'w') as outfile:
    for file in file_list:
        # 使用open函数以读模式打开当前文件
        with open(file, 'r') as infile:
            # 将当前文件的内容写入输出文件
            outfile.write(infile.read())

# 使用open函数以读模式打开输出文件
with open(output_file, 'r') as infile:
    # 计算输出文件中的行数
    output_lines = sum(1 for line in infile)

    # 打印输出文件的行数
    print(f"{output_file}{output_lines} 行")

输出结果:
在这里插入图片描述

3. 补充

其实 直接用 简单的shell ,cat 也可以实现文件合并功能。

$ cat ./middle/phone/base/1_student_0.txt ./middle/vr/base/1_teacher.txt ./nearby/phone/base/1_student_0.txt ./nearby/vr/base/1_teacher.txt ./outside/phone/base/1_student_0.txt ./outside/vr/base/1_teacher.txt > base_together.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值