我正在用 python 解析一个 pdf 文件并将文本字符串发送回 golang 服务器。当我使用较小的 pdf 文件运行代码时,它可以正常工作,但对于较大的 pdf 文件,它会返回exit status 1
这是我正在使用的代码:
func parsePdf(path string) string {
cmd := exec.Command("python", "pdf_parser.py", path)
output, err := cmd.Output() //this line throws error
if err != nil {
fmt.Println(err)
}
f, _ := os.Create("go-pdf-output.txt")
_, err := f.WriteString(string(output))
if err != nil {
fmt.Println(err2)
}
return string(output)
}
这是我得到的错误cmd.Err
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x18 pc=0xfc00e6]
这是我的 python 脚本,我在其中打印解析后的字符串:
import fitz
import sys
path = sys.argv[1]
doc = fitz.open(path)
list = []
for page in doc:
text = page.get_text("text")
list.append(text)
outputString= ' '.join(list)
print(outputString)
如果我单独运行 python 脚本,它会完美运行。在此行抛出错误output, err := cmd.Output()如果 pdf 文件很小,它工作正常但如果 pdf 文件较大(例如:一本书 pdf),它会失败。
我认为错误是可以返回的字节大小cmd.Output()。有没有更好的方法将数据从 python 脚本传输到 golang。
慕尼黑的夜晚无繁华
相关分类