我想知道如何将信息从一个 python 程序传递到另一个。基本上,我将打开一个使用 os.system(file) 命令执行另一个 pytgon 程序的 python 程序。让我们举个例子:
“家长”计划:
import file #file is the child
import os
num=int(input("Enter number: "))
if num%2==0:
os.system('python file.py')
else:
pass
Run Code Online (Sandbox Code Playgroud)
现在的“儿童”程序:
name=input("Enter Name: ")
age=int(input("Enter age: "))
print("Hi",name)
Run Code Online (Sandbox Code Playgroud)
所以在这个例子中,当用户输入一个偶数时,程序会启动子程序,它会依次询问用户他的姓名和年龄。
现在我的问题是:如果我想将子程序中输入的信息(姓名和年龄)带回父程序,我该怎么做?
我有一个 Python 脚本。我们称之为controller.py。我想使用controller.py运行另一个 Python 脚本并将几个变量传递给它。让我们调用第二个脚本分析器.py。
在不将Analyzer.py作为模块导入的情况下执行此操作的最佳方法是什么?以及如何在该脚本中引用我传递给analyzer.py的变量?
这是我使用子流程的失败尝试:
控制器.py
import subprocess
var1='mytxt'
var2=100
var3=True
var4=[['x','y','z'],['x','c','d']]
var5=r"C:\\Users\\me\\file.txt"
myargs=var1,var2,var3,var4,var5
my_lst_str = ' '.join(map(str, myargs))
my_lst_str ='python analyzer.py '+my_lst_str
subprocess.call(my_lst_str,shell=True)
Run Code Online (Sandbox Code Playgroud)
分析器.py
print 'Argument List:', str(sys.argv)
Run Code Online (Sandbox Code Playgroud)
我在 Stack Overflow 上看过类似的问题。我尝试过的一个经常推荐的解决方案是将analyzer.py 作为模块导入,但analyzer.py 定义了许多不同的函数。将其用作模块会创建许多嵌套函数,并且在这些嵌套函数中管理变量的范围很麻烦。
我需要为这些脚本使用 Python 2。我在 Windows 10 机器上。
按照我之前的问题.我被建议创建一个单独的python库然后导入它.
在阅读了更多内容之后Stackoverflow
,我意识到最好的方法是编写方法,然后我就走上了这条道路.
def USB(port):
activateme = serial.Serial(port,115200)
#print "starting to monitor"
for line in activateme:
#print line
return line
def USBprocess(line):
if line.startswith( '#d'):
fields = line.split(',')
if len(fields) > 5:
W = fields[1]
V = fields[2]
A = fields[3]
print "monitoring"
return W,V,A
op = USB(port)
w,v,a = USBprocess(op)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
UnboundLocalError: local variable 'W' referenced before assignment
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
我对 Python 很陌生,正在尝试使用 Python 在 Raspberry Pi2 中制作一个小项目
目前我有 2 个代码文件run1.py
和run2.py
我想写一个if-else
条件Project.py
,但我不知道如何正确编写代码......
if (condition is true) ----> run the code from file "run1.py"
else ----> run the code from file "run2.py"
Run Code Online (Sandbox Code Playgroud)
__main__
是关于“ ”或“ ”的主题import os
吗?我也想了解它是如何工作的,但还没有真正理解。
谢谢