【发布时间】:2017-06-17 11:53:49
【问题描述】:
我正在尝试在终端中运行我的文件“counting.py”,但不是直接运行。我正在使用“almost.py”中的子进程模块,它告诉终端在counting.py中运行特定的函数“count(a, b)”。
***count(a, b) 接受两个字符串 a 和 b 并返回总字数
almost.py 成功引导终端在counting.py 中运行count(a, b)。但是,在通过子进程运行后,我无法检索 count(a, b) 函数的实际输出。我该怎么做?
几乎.py
import subprocess
output = subprocess.Popen(['python', 'counting.py', 'count', '"let roll"', '"love it most "'])
print (output) #it is not actually return the real value of count(a, b)!!!
counting.py
from sys import argv
def count (a, b):
word = False
a = " " + a + " "
b = " " + b + " "
result = 0
for i in range (len (a)-1):
if a[i] == " " and a[i+1] != " ":
word = True
result += 1
else:
word = False
for i in range (len (b)-1):
if b[i] == " " and b[i+1] != " ":
word = True
result += 1
else:
word = False
return result
if __name__ == "__main__":
print(count (argv[2], argv[3]))
【问题讨论】:
-
如果你可以
import counting然后直接从 Python 调用counting.count而没有任何子进程,你为什么还要这样做? -
@ForceBru 因为我正在尝试学习这个概念。原始项目涉及从终端运行 bash 文件 notcount.py 这就是为什么我必须使用子进程来运行文件而不是导入它
标签: python python-3.x subprocess