最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在node中如何調(diào)用python腳本

 更新時間:2022年09月06日 11:04:41   作者:龍易安  
這篇文章主要介紹了在node中如何調(diào)用python腳本,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

node調(diào)用python腳本

使用場景

在某測試項目需要用到eload儀器為待測產(chǎn)品添加載荷,然后用dmm儀器測量電壓,eload儀器與dmm儀器與電腦的連接都是usb接口,那么軟件如何控制這兩個usb連接的儀器呢。

通過搜索發(fā)現(xiàn)npm上有一個usb的依賴包,它可以查詢到與電腦相連接的usb設(shè)備,但是我無法向usb設(shè)備發(fā)送命令。

所以我只能通過python腳本向usb設(shè)備發(fā)命令,然后在node中再調(diào)用python腳本。

1、準備運行環(huán)境,獲取python路徑

python的運行需要有python的環(huán)境,軟件安裝包可能安裝在沒有python環(huán)境的電腦上。所以我們在nw中將python(python-pro文件夾)包括進去,打包時一起打包出來(打包時會將nw包中的東西一起打包)。

將要調(diào)用的python腳本文件放到python-pro文件夾下。

if(global.hasOwnProperty('nw')){
? fs = nw.require('fs');
? path= nw.require('path');
? dirpath = path.dirname(process.execPath)
? pythonPro = dirpath+'/python-pro/'
}

process.execPath為當前啟動 Node.js 進程的可執(zhí)行文件的絕對路徑,包含執(zhí)行文件名及其后綴,例如‘E:\Nw-package\nwjs-sdk-v0.39.0-win-x64\nw37.exe’,

path.dirname方法會返回 path 的目錄名(路徑中去除最后的執(zhí)行文件名),上述絕對路徑會返回‘E:\Nw-package\nwjs-sdk-v0.39.0-win-x64’

pythonPro = dirpath+’/python-pro/’,就找到了python所在的文件夾。

2、前端把命令字符串和python路徑傳給后端

封裝調(diào)用方法

async operate_usb(usbName,act,command,...args){
? ? ? ? let cmd= "\""+usbName +"\""+ " "+"\""+ act+"\"" + " " +"\""+ command+"\"";
? ? ? ? args.forEach(item=>{
? ? ? ? ? ? cmd=cmd+" "+item;
? ? ? ? })
? ? ? ? let res = await CommandUtils.callCmd_usb(pythonPro, cmd);
? ? ? ? console.log(command+'請求結(jié)果:',res);
? ? ? ? return res ?
? ? },

拼接命令字符串,調(diào)用時需要傳入命令,根據(jù)python接口格式拼接好命令。

注意命令要用ml中參數(shù)要用空格隔開,參數(shù)要用雙引號包起來(不能用單引號)然后又通過Meteor.call調(diào)用服務(wù)端注冊的方法調(diào)用。

把python路徑、命令字符串傳過去。

3、服務(wù)端調(diào)用python腳本

1、再次拼接命令字符串

?let cmdStr="python "+"call_instrument.py " + cmd;
  • 第一個字符串"python "調(diào)用的命令行的開頭,是用命令行調(diào)用python腳本的固定寫法
  • 第二個字符串"call_instrument.py "是調(diào)用的python腳本文件名稱
  • 第三個參數(shù)是前端傳過來的命令
  • 字符串之間用空格隔開

2、調(diào)用

path = path.split('/').join("\\")
return new Promise((resolve, reject) => {
? ? exec(cmdStr,{
? ? ? cwd:path,
? ? }, function (error, stdout, stderr) {
? ? ? if (error) {
? ? ? ? console.error('cmdFunc_usb error: ' + error);
? ? ? ? resolve(error)
? ? ? ? return;
? ? ? }
? ? ? console.log('receive: ' + stdout);
? ? ? resolve(stdout);
? ? });
? })

通過exec()方法調(diào)用,

exec的文檔

  • 第一個參數(shù)是運行的命令
  • 第二個參數(shù)是配置對象,cwd是執(zhí)行的路徑
  • 第三個是回調(diào)函數(shù),進程終止時調(diào)用,stdout是返回結(jié)果 

nodejs調(diào)用python輸出中文亂碼

nodejs調(diào)用python3腳本輸出中文亂碼的問題

問題如圖

代碼如圖

解決方法如下

在源代碼中添加

如果你未引入sys,請同時引入sys

結(jié)果如下

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 手把手教你通過nodejs快速搭建一個服務(wù)器

    手把手教你通過nodejs快速搭建一個服務(wù)器

    這篇文章主要給大家介紹了關(guān)于如何通過nodejs快速搭建一個服務(wù)器的相關(guān)資料,在node.js中創(chuàng)建一個服務(wù)器非常簡單,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • 詳解Nodejs內(nèi)存治理

    詳解Nodejs內(nèi)存治理

    本篇文章給大家分享了Nodejs內(nèi)存處理相關(guān)的知識點以及實例代碼分享,有興趣的朋友跟著學(xué)習下。
    2018-05-05
  • 關(guān)于Error:EPERM:operation?not?permitted,mkdir...的幾種解決辦法對比

    關(guān)于Error:EPERM:operation?not?permitted,mkdir...的幾種解決辦法對比

    這篇文章主要給大家介紹了關(guān)于Error:EPERM:operation?not?permitted,mkdir...的幾種解決辦法對比,文中通過圖文介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2023-01-01
  • Nodejs實現(xiàn)文件上傳的示例代碼

    Nodejs實現(xiàn)文件上傳的示例代碼

    這篇文章主要介紹了Nodejs文件上傳的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 如何能分清npm cnpm npx nvm

    如何能分清npm cnpm npx nvm

    這篇文章主要介紹了如何能分清npm cnpm npx nvm,本文就詳細的來介紹一下區(qū)別,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Node.js中.pfx后綴文件的處理方法

    Node.js中.pfx后綴文件的處理方法

    這篇文章主要介紹了Node.js中.pfx后綴文件的處理方法,文中介紹的很詳細,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • nodejs中的express-jwt的使用解讀

    nodejs中的express-jwt的使用解讀

    這篇文章主要介紹了nodejs中的express-jwt的使用解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 簡單實現(xiàn)node.js圖片上傳

    簡單實現(xiàn)node.js圖片上傳

    這篇文章主要為大家詳細介紹了node.js圖片上傳的簡單實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 使用 NodeJS+Express 開發(fā)服務(wù)端的簡單介紹

    使用 NodeJS+Express 開發(fā)服務(wù)端的簡單介紹

    這篇文章主要介紹了使用 NodeJS+Express 開發(fā)服務(wù)端的簡單介紹,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • Windows 系統(tǒng)下設(shè)置Nodejs NPM全局路徑

    Windows 系統(tǒng)下設(shè)置Nodejs NPM全局路徑

    這篇文章主要介紹了Windows 系統(tǒng)下設(shè)置Nodejs NPM全局路徑
    2016-04-04

最新評論

视频| 临清市| 称多县| 张家界市| 巴林右旗| 沙坪坝区| 德钦县| 柳河县| 兴隆县| 滦南县| 鄄城县| 监利县| 江源县| 靖州| 普宁市| 车险| 资兴市| 贵阳市| 娄底市| 辽中县| 班戈县| 松桃| 龙泉市| 云林县| 呼玛县| 凤城市| 博兴县| 铅山县| 凤凰县| 云安县| 张掖市| 错那县| 十堰市| 吉首市| 钟山县| 新龙县| 丰镇市| 遂昌县| 泰来县| 安顺市| 张家界市|