Go语言批量处理文件
[toc]
实现基本的批量创建文件和输入模板
/*
* @Author: xiongxinwei 3293172751nss@gmail.com
* @Date: 2022-06-30 18:06:52
* @LastEditors: Please set LastEditors
* @LastEditTime: 2022-09-15 14:59:25
* @FilePath: \undefinedd:\文档\git\CS_COURSE\python3\script.go
* @Description: github - markdown
*/
package main
import (
"bufio"
"fmt"
"os"
"os/exec"
"strconv"
)
func main() {
fmt.Println("欢迎使用xiongxinwei构建的脚本," + "一键构建GitHub的文档结构\n" + "关于我:\n" +
" + 博客:http://nsddd.top\n" +
" + GitHub地址: https://github.com/3293172751")
fmt.Println()
fmt.Println()
fmt.Println("请选择是否(yes\\no)创建目录")
var yes, fname string
fmt.Scanln(&yes)
if yes == "yes" { //输入的是yes 则 创建目录
fmt.Println("请选择创建目录的名称(输入yes默认markdown文件夹)")
var markdown string
fmt.Scanln(&markdown)
if markdown != "yes" {
fmt.Scanln(&fname) //输入文件夹名称
} else {
//选择默认markdown格式
fname = "markdown"
}
if err := os.Mkdir(fname, 0666); err != nil {
fmt.Println("err = ", err)
}
} else {
fmt.Println("你选择了使用原来的目录,您当前的目录文件有:")
cmd := exec.Command("ls", " ")
fmt.Println(cmd)
fmt.Println("请选择你要构建GitHub项目的目录")
var text int
fmt.Scanln(&text)
}
// str := "markdown" //目录
// // MkdirAll 递归创建目录
// if err := os.Mkdir(str, 0666); err != nil {
// fmt.Println("err=", err)
// }
var a, n int
fmt.Printf("输入文件开始的编号")
fmt.Scanln(&a)
fmt.Println("请输入你要构建markdown的文件个数:")
fmt.Scanln(&n)
var st string //要说的话
fmt.Println("请输入项目介绍")
fmt.Scanln(&st)
var xm string //项目地址
fmt.Println("请输入项目的地址")
fmt.Scanln(&xm)
for i := 1; i < n; i++ {
a1 := strconv.Itoa(a)
a2 := strconv.Itoa((a + 1))
a3 := strconv.Itoa((a - 1))
filePath := fname + "/" + a1 + ".md"
file, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE, 0666)
//在原来的基础上追加666表示访问权限
if err != nil {
fmt.Println("文件打开失败", err)
}
//及时关闭file句柄
defer file.Close()
//写入文件时,使用带缓存的 *Writer
write := bufio.NewWriter(file)
write.WriteString("+ [author](" + xm + ")\n")
write.WriteString("\n")
write.WriteString("# 第" + a1 + "节\n")
write.WriteString("\n")
//批量加入文件,
write.WriteString("<div><a href = '" + a3 + ".md" + "' style='float:left'>⬆️上一节🔗</a><a href = '" + a2 + ".md" + "' style='float: right'>⬇️下一节🔗</a></div>\n")
write.WriteString("<br>\n")
write.WriteString("\n")
write.WriteString("> ❤️💕💕" + st + "Myblog:[http://nsddd.top](http://nsddd.top/)\n")
write.WriteString("\n")
write.WriteString("---\n")
write.WriteString("[TOC]\n")
for i := 0; i < 5; i++ {
write.WriteString("\n")
}
write.WriteString("## END 链接\n")
write.WriteString("<ul><li><div><a href = '" + a3 + ".md" + "' style='float:left'>⬆️上一节🔗</a><a href = '" + a2 + ".md" + "' style='float: right'>⬇️下一节🔗</a></div></li></ul>\n")
write.WriteString("\n")
write.WriteString("+ [Ⓜ️回到目录🏠](../README.md)\n")
write.WriteString("\n")
write.WriteString("+ [**🫵参与贡献💞❤️🔥💖**](https://nsddd.top/archives/contributors))\n")
write.WriteString("\n")
// 版权声明
write.WriteString("+ ✴️版权声明 © :本书所有内容遵循[CC-BY-SA 3.0协议(署名-相同方式共享)©](http://zh.wikipedia.org/wiki/Wikipedia:CC-by-sa-3.0协议文本) \n")
write.WriteString("\n")
//Flush将缓存的文件真正写入到文件中
write.Flush()
a = a + 1
}
}