以下是Go代码实现:
package main
import (
"encoding/csv"
"fmt"
"io/ioutil"
"os"
"path/filepath"
"strings"
"time"
)
func main() {
// 获取当前日期
today := time.Now().Format("2006-01-02")
folderPath := "C:\\Users\\You\\Downloads"
// 遍历文件夹中的所有文件和子文件夹
filepath.Walk(folderPath, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
// 判断文件是否csv格式,并且是今天创建的
if strings.ToLower(filepath.Ext(path)) == ".csv" && info.ModTime().Format("2006-01-02") == today {
file, err := os.Open(path)
if err != nil {
return err
}
defer file.Close()
// 将文件内容转换为utf-8编码方式
content, err := ioutil.ReadAll(file)
if err != nil {
return err
}
utfContent := string(content)
// 判断标头是否为“是否留痕的位置”
r := csv.NewReader(strings.NewReader(utfContent))
header, err := r.Read()
if err != nil {
return err
}
if header[0] == "是否留痕的位置" {
// 读取文件内容
for {
row, err := r.Read()
if err != nil {
break
}
// 处理每一行数据
fmt.Println(row)
}
}
}
return nil
})
}
其中,time模块用于处理日期时间相关操作。time.Now().Format("2006-01-02")返回当天日期的字符串形式,格式为yyyy-mm-dd。
通过filepath.Walk()函数遍历文件夹中的所有文件和子文件夹,判断文件是否csv格式,并且是今天创建的。如果符合条件,则打开文件并将其内容转换为utf-8编码方式,判断标头是否为“是否留痕的位置”,然后读取文件内容并处理每一行数据。




