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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/546060.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MATLAB源码-第43期】基于matlab的turbo码误码率仿真比较不同迭代次数,采用logmap/sova算法。

操作环境: MATLAB 2022a 1、算法描述 Turbo码是一种前向纠错码 (Forward Error Correction, FEC),在 1993 年由法国的两位研究员 Claude Berrou 和 Alain Glavieux 提出。这种编码技术以其接近 Shannon 极限的高性能而受到广泛关注。以下是关于 Turbo…

【word】文档标题如何自动编号

我在写一个word文档的时候,每一级标题的格式都设置好了,包括字体,大小等等,但是如何自动编号呢? 在写中期报告的时候,我对每一级标题的格式都创建了一个单独的样式,像这样: 对于每一…

Linux——信号量与基于环形队列的生产者消费者模型

目录 前言 一、信号量 二、信号量的接口 1.初始化 2.销毁 3.申请信号量 4. 释放信号量 三、基于环形队列的生产者消费者模型 1.环形队列的理解 2.生产者消费者的设计 3.单消费者单生产者环形队列的实现 4.多消费者多生产者环形队列的实现 前言 之前,…

AI的说服力如人类?Anthropic最新研究揭秘机器的辩论能力|TodayAI

人们常常对人工智能模型在对话中的说服力表现持怀疑态度。长久以来,社会上一直存在一个疑问:人工智能是否会达到人类那样,在对话中具有改变他人想法的能力? 直到最近,这一领域的实证研究相对有限,对于人工…

HTML5 新增语义标签及属性

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 ✍HTML5 新增语义标签及属性💎1 HTML5 新增的块级语义化标签&…

海外代理IP在跨境电商中发挥什么作用?

在我国跨境电商的发展中,海外代理IP的应用日益广泛,它不仅帮助商家成功打入国际市场,还为他们在多变的全球电商竞争中保持优势。下面是海外代理IP在跨境电商中五个关键的应用场景。 1、精准的市场分析 了解目标市场的消费者行为、产品趋势以…

pyinstaller工具打包python项目详细教程

使用 Pyinstaller工具 编译打包 Python 项目生成 exe 可执行文件 1.pyinstaller介绍: 介绍:PyInstaller 是一个将 Python 程序转换为独立可执行文件的工具。它能够在 Windows、Linux、Mac OS X、AIX 和 Solaris 等多种系统上运行。详细介绍可参考pyins…

记录--病理切片图像处理

简介 数字病理切片,也称为全幻灯片成像(Whole Slide Imaging,WSI)或数字切片扫描,是将传统的玻片病理切片通过高分辨率扫描仪转换为数字图像的技术。这种技术对病理学领域具有革命性的意义,因为它允许病理…

Git分布式版本控制系统——在IDEA中使用Git(二)

四、IDEA中本地仓库的操作 1.将文件加入暂存区 2.将暂存区的文件提交到版本库(相当于git commit) 3.查看日志 五、IDEA中远程仓库的操作 1.查看远程仓库 2.添加远程仓库 3.推送至远程仓库 4.从远程仓库拉取

pyqt实现星三角减压启动

这个对于plc上实现是非常容易得。它本来就是逻辑控制器,如果用代码实现它,该怎么做呢?这个实现起来看似简单,实则是有不少坑的(大神除外)。我一直想用类来封装,让它继承QObject,为啥非要继承QOb…

为什么MySQL数据库超过2000万条数据,查询依然很快:B+树和数据页结构解析

MYSQL数据库单表建议最大2000万条数据,很多人都说如果超过了2000万条数据,性能就会下降的特别厉害。但是你实际上存储后,发现即使超过了2000万但是查询依旧很快,这是为什么? Mysql为了查询速度,内部使用了…

私域流量变现干货:轻松盘活,高效增长!

你知道如何增长私域流量并将这些流量转化为实际收益,让我们的品牌价值最大化吗? 今天,就分享几点干货,帮助大家盘活私域流量,实现高效增长! 1、精准定位和用户画像 首先,了解您的私域流量源于…

JavaWeb开发03-Mybatis入门-基础操作-XML映射文件-动态SQL

一、Mybatis-入门 Java程序控制数据库 1.入门 定义实体类:一定要和表中的字段一一对应 配置连接数据库数据 建立Mapper层语句,来获取数据库数据以及将其封装到user的list中去。 2.配置SQL提示 为了进行查询数据库中有哪些表,所以得连接数据…

详解IP证书申请

申请IP证书,也被称为IP SSL证书,是一种特殊的SSL证书,它不同于传统的域名验证(DV)证书,是通过验证公网IP地址而不是域名来确保安全连接。这种证书用于保护IP地址,并在安装后起到加密作用。以下是…

VTK —— 一、Windows10下编译VTK源码,并用Vs2017代码测试(附编译流程、附编译好的库、vtk测试源码)

效果 编译 1、下载VTK8.2.0源码        2、解压源码后,进入目录创建build目录,同时在build内创建install目录 (下图install目录是在cmake第一次后才手动创建,建议在创建build时创建)        3、打开CMake,如下图填入…

CSS 这就是一个按照我看到的css ,边用边总结的笔记~

margin 和 paddingdisplay外部表现类(display-outside) : block , inline内部表现类(display-inside) : flex,gird,table,flow,flow-root,ruby margin 和 padding 可以设置1~4个属性 属性个数属性值1一起设置 上下左右2分别设置 上下 , 左右3分别设置 上 , 左右 , 下4分别设置…

戏作打油诗《无知》

笔者经营多年的《麻辣崇州论坛》,半月前突被攻击我在“霸屏”,没处讲理,特戏作打油诗《无知》一首,为那个无理取闹、砸我“麻辣崇州论坛”的无知小儿画像如下。 请点击链接,一目了然:崇州论坛-麻辣社区 没…

Gemini国内怎么使用

GPT、Claude、Gemini全系列模型国内使用方法来了! 一直以来很多人问我能不能有个稳定,不折腾的全球AI大模型测试网站,既能够保证真实靠谱,又能够保证稳定、快速,不要老动不动就挂了、出错或者漫长的响应。 到目前为止…

Android T多屏多显——应用双屏间拖拽移动功能(更新中)

功能以及显示效果简介 需求:在双屏显示中,把启动的应用从其中一个屏幕中移动到另一个屏幕中。 操作:通过双指按压应用使其移动,如果移动的距离过小,我们就不移动到另一屏幕,否则移动到另一屏。 功能分析…