当前位置: 首页 > news >正文

Go语言开发合并文件小工具

小伙伴们,前端时间我在github 中下载了一些小学、初中、高中、大学用的课文,有些文件是被拆分过的需要合并起来,接下来我们利用go语言搞一个合并小工具。

图片

图片

下载GO并安装:

网址:https://go.dev/dl/

图片

图片

下载相应的版本,这里我们已windwos版本为例,下载后直接安装即可。

图片

一路下一步

图片

完成后我们在命令行输入 go version 出现以下界面说明安装成功。 

图片

将我们的go程序复制到拆分文件的目录中

图片

命令行输入:go run mergePDFs.go

图片

稍微等会儿后文件就合并成功了。

图片

合并后的pdf就可以正常打开了。 

go代码:

                  

package main
import (
"io/ioutil"
"os"
"sort"
"strings"
)
func main() {dirPath := "." // 当前目录mergeSplitPDFsInDirectory(dirPath)
}
func mergeSplitPDFsInDirectory(dirPath string) {files, err := ioutil.ReadDir(dirPath)
if err != nil {panic(err)}splitFiles := make(map[string][]string)
for _, file := range files {
if file.IsDir() {continue}fileName := file.Name()
if strings.Contains(fileName, ".pdf.") {baseName := strings.Split(fileName, ".pdf.")[0] + ".pdf"splitFiles[baseName] = append(splitFiles[baseName], fileName)}}
for baseName, parts := range splitFiles {sort.Strings(parts) // 确保文件顺序正确mergeFiles(baseName, parts)}
}
func mergeFiles(baseName string, parts []string) {mergedFile, err := os.Create(baseName)
if err != nil {panic(err)}defer mergedFile.Close()for _, part := range parts {data, err := ioutil.ReadFile(part)
if err != nil {panic(err)}_, err = mergedFile.Write(data)
if err != nil {panic(err)}os.Remove(part) // 合并后删除分割文件}
}

感兴趣的小伙伴可以去尝试一下!

感谢大家的点赞和关注,我们下期见!

http://www.xdnf.cn/news/1428697.html

相关文章:

  • go命令行工具:如何在现有的工程里加入使用cobra
  • 苹果手机文本转音频,自行制作背诵素材
  • Redis 持久化机制详解
  • 《WINDOWS 环境下32位汇编语言程序设计》第10章 内存管理和文件操作(2)
  • 文华财经wh6波段多空指标-变色K做多做空信号,抄底逃顶主图幅图
  • Docker启动两个Redis镜像并配置一主一从
  • Linux内核O(1)调度算法
  • 汽车制造工厂如何应用力控SCADA实现全方位智能监控与诊断
  • 从“成本中心”到“生产力引擎”:MCP如何将AI从“建议者”变为“执行者”
  • 2025年新版C语言 模电数电及51单片机Proteus嵌入式开发入门实战系统学习,一整套全齐了再也不用东拼西凑
  • 久等啦!Tigshop O2O多门店JAVA/PHP版本即将上线!
  • 通义万相Wan2.2-S2V-14B:AI视频生成的革命性突破与实践指南
  • c++ 类和对象(上)
  • 与后端对话:在React中优雅地请求API数据 (Fetch/Axios)
  • token存储方案
  • iOS XML 处理利器:CNXMLParser 与 CNXMLDocument 深度解析
  • 从零开始的python学习——函数(2)
  • 漫画短剧小程序系统开发:从0到1的核心架构与思路
  • 今天我们开始学习shell编程语言
  • @ZooKeeper 详细介绍部署与使用详细指南
  • 【JavaScript】前端两种路由模式,Hash路由,History 路由
  • 通过 FinalShell 访问服务器并运行 GUI 程序,提示 “Cannot connect to X server“ 的解决方法
  • NV115NV119美光固态闪存NV129NV112
  • 【53页PPT】华为制造行业数字化转型工业互联网智能制造解决方案(附下载方式)
  • Spring MVC BOOT 中体现的设计模式
  • Python 环境配置初学者指南:从安装到 Pycharm 项目配置
  • OpenHarmony HVB安全启动一键启停全栈实践:从U-Boot签名到fastboot解锁的闭环避坑指南
  • Python OpenCV图像处理与深度学习:Python OpenCV性能优化与高效图像处理
  • 为什么神经网络网络算法比机器学习模型算法更加强大?
  • 关于嵌入式学习——嵌入式硬件1