我想阅读多个PDF文件的文本。我找不到合适的Go lib,所以我使用PDF2Text工具,并编写了以下代码:package mainimport ( "fmt" "log" "os" "os/exec" "path/filepath")func main() { var files []string root := "." err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error { if info.IsDir() { return nil } if filepath.Ext(path) != ".pdf" { return nil } files = append(files, info.Name()) return nil }) if err != nil { panic(err) } for _, file := range files { fmt.Println(file) cmd := exec.Command("pdf2text", "-o", "files", file) err := cmd.Run() if err != nil { log.Fatalf("cmd.Run() failed with %s\n", err) } }}这是工作文件,并将所有pdf文件提取到文件夹“files”中,但是由于此工具的演示版本将pdf文件提取到多个文本文件(每页文件),我希望PDF文件提取到的文件夹与文件名本身相同,因此我尝试替换:cmd := exec.Command("pdf2text", "-o", "files", file)由cmd := exec.Command("pdf2text", "-o", file, file)但它不起作用,没有执行任何内容,没有抛出任何错误。
1 回答

慕姐8265434
TA贡献1813条经验 获得超2个赞
问题是因为两个输出文件夹都有ext,所以理解我正在转换2个同名的pdf。.pdfpdf2txt
为了解决这个问题,我从第一个字符串中删除了ext,该字符串将用于输出目录名称,因此我的代码变成了:.pdfstrings.Split
for _, file := range files {
fmt.Println(file)
s := strings.Split(file, ".")
cmd := exec.Command("pdf2text", "-o", s[0], file)
err := cmd.Run()
if err != nil {
log.Fatalf("cmd.Run() failed with %s\n", err)
}
}
- 1 回答
- 0 关注
- 113 浏览
添加回答
举报
0/150
提交
取消