博主原博客地址:https://www.lisok.cn/Front-End/610.html
调用Pyinstaller
打包后的可执行文件方式如下:
import { promisify } from 'util'
import { exec } from 'child_process'
import { app } from 'electron'async handleVerifyZy(id) {const entity = await this.findById(id)const execPromise = promisify(exec)let args = `-a 202501 -c community-sample.json -r resident-sample.json -t ${entity.timestamp}`const verifyOutput = await execPromise(`verify.exe ${args}`)// 正常运行结束需要取出结果的excellet outputExcelName = join(app.getPath('userData'),'verify_result',`${entity.timestamp}_monthly_zy_analysis_result.xlsx`)return {outputExcelName,verifyOutput}}
打印在渲染层发现标准输出的中文乱码
需要修改Python
脚本,定义全局的stdout
的编码
python"># encoding:utf-8
import io
import syssys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding="utf-8")
打包后再次调用,问题解决
参考
1.nodejs调用python输出中文乱码的问题:https://blog.csdn.net/qq_40185480/article/details/105910329