有没有办法将 return args 到 Python 中的命令行(编译为 EXE)到 JavaScript 文件?
Is there a way to return args to command line in Python (Compiled to EXE) to a JavaScript file?
所以,我正在制作一个节点程序,Python 可以做很多事情,JavaScript 不喜欢使用模块 Python-specific,等等。所以,我决定将 Python 文件编译为 EXE,然后使用 JavaScript 和下面的代码调用它们...
const execFile = require("child_process").execFile;
function openExe(filePath, args = "") {
execFile(filePath, [args], (error, stdout, stderr) => {
if (error) {
console.error("stderr", stderr);
throw error;
}
});
}
然后我在 Python...
中写了这个
import sys
from pyowm.owm import OWM
args = (sys.argv)
args.pop(0)
print(args)
def print_weather(thing, location):
location = location.lower()
location = location.replace(" ", "")
location = location.replace("weather", "")
owm = OWM(api-key)
mgr = owm.weather_manager()
listOfAll = []
listOfNotAll = []
weather = mgr.weather_at_place(location).weather
temp = int((weather.to_dict()['temperature'])['temp'])
temp = round((temp - (273.15)) * 9/5 + 32)
weather1 = str(weather.to_dict()[thing])
listOfAll.append(f"The weather in {location} is {weather1}")
listOfAll.append(f"The current temperature is {temp}°F")
if temp <= 68:
listOfAll.append("You should probably wear warm cloths ")
listOfNotAll.append("\U0001F455")
elif temp > 99:
listOfAll.append("Drink some water its pretty hot...")
listOfNotAll.append("\U0001F4A6")
#{{{{Some way to return both (listOfNotAll and listOfAll) the lists}}}}
print_weather("detailed_status", "chennai")
现在我需要的是通过某种方式将此文件(已编译为 EXE)的输出 return 到 JavaScript 文件。
如果在这种情况下这是不可能的,那么我必须改变什么...
谢谢...
您可以在 print_weather
函数的末尾打印 listOfAll
和 listOfNotAll
。
例如:
print("listOfAll:")
for item in listOfAll:
print(item)
print("listOfNotAll:")
for item in listOfNotAll:
print(item)
python 代码的输出将被 javascript 中的标准输出变量捕获。
此时您可以使用 stdout 做任何您想做的事情(例如,使用 stdout.split("\n")
将其转换为行数组)
我找到了一个博客 post,这也是您问题的可能解决方案:
https://www.sohamkamani.com/blog/2015/08/21/python-nodejs-comm/
所以,我正在制作一个节点程序,Python 可以做很多事情,JavaScript 不喜欢使用模块 Python-specific,等等。所以,我决定将 Python 文件编译为 EXE,然后使用 JavaScript 和下面的代码调用它们...
const execFile = require("child_process").execFile;
function openExe(filePath, args = "") {
execFile(filePath, [args], (error, stdout, stderr) => {
if (error) {
console.error("stderr", stderr);
throw error;
}
});
}
然后我在 Python...
中写了这个import sys
from pyowm.owm import OWM
args = (sys.argv)
args.pop(0)
print(args)
def print_weather(thing, location):
location = location.lower()
location = location.replace(" ", "")
location = location.replace("weather", "")
owm = OWM(api-key)
mgr = owm.weather_manager()
listOfAll = []
listOfNotAll = []
weather = mgr.weather_at_place(location).weather
temp = int((weather.to_dict()['temperature'])['temp'])
temp = round((temp - (273.15)) * 9/5 + 32)
weather1 = str(weather.to_dict()[thing])
listOfAll.append(f"The weather in {location} is {weather1}")
listOfAll.append(f"The current temperature is {temp}°F")
if temp <= 68:
listOfAll.append("You should probably wear warm cloths ")
listOfNotAll.append("\U0001F455")
elif temp > 99:
listOfAll.append("Drink some water its pretty hot...")
listOfNotAll.append("\U0001F4A6")
#{{{{Some way to return both (listOfNotAll and listOfAll) the lists}}}}
print_weather("detailed_status", "chennai")
现在我需要的是通过某种方式将此文件(已编译为 EXE)的输出 return 到 JavaScript 文件。 如果在这种情况下这是不可能的,那么我必须改变什么...
谢谢...
您可以在 print_weather
函数的末尾打印 listOfAll
和 listOfNotAll
。
例如:
print("listOfAll:")
for item in listOfAll:
print(item)
print("listOfNotAll:")
for item in listOfNotAll:
print(item)
python 代码的输出将被 javascript 中的标准输出变量捕获。
此时您可以使用 stdout 做任何您想做的事情(例如,使用 stdout.split("\n")
将其转换为行数组)
我找到了一个博客 post,这也是您问题的可能解决方案: https://www.sohamkamani.com/blog/2015/08/21/python-nodejs-comm/