gpt4 book ai didi

python - 在 Windows 终端中获取外部 python 程序的输出

转载 作者:太空宇宙 更新时间:2023-11-03 18:33:36 27 4
gpt4 key购买 nike

我正在运行以下 python 代码。我希望它能在终端中执行一些外部 Python 代码,并将输出保存在 numpy 数组中,然后我可以将其附加到另一个 numpy 数组以添加额外的列。它在 shell 中运行外部 python 命令;但我找不到一种方法来获取输出,以便将其保存在我的程序中。

这是代码:

import csv
import GetAlexRanking #External Method exposed here
import subprocess
import pandas as p
import numpy as np

loadData = lambda f: np.genfromtxt(open(f,'r'), delimiter=' ')
with open('train.tsv','rb') as tsvin, open('PageRanks.csv', 'wb') as csvout:
tsvin = list(np.array(p.read_table('train.tsv'))[:,0])
csvout = csv.writer(csvout)

for row in tsvin:
count = 0
cmd = subprocess.Popen("python GetAlexRanking.py " + row ,shell=True)
(output, err) = cmd.communicate()
exit_code = cmd.wait()
print exit_code #testing
print output #**error here**, always prints "none"
csvout.write(url + "\t" + cmd_string) #writing
count+=1

如何获取“python GetAlexRanking.py”命令的输出并将其保存在 Python 代码的变量中?

谢谢。

最佳答案

使用stdout=subprocess.PIPE。如果没有它,子进程将直接将其输出打印到终端。

cmd = subprocess.Popen("python GetAlexRanking.py " + row ,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
shell=True)
(output, err) = cmd.communicate()

关于python - 在 Windows 终端中获取外部 python 程序的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21969515/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com