相关疑难解决方法(0)

如何在不同的python程序之间传递信息

我想知道如何将信息从一个 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

3
推荐指数
1
解决办法
65
查看次数

如何使用一个 Python 脚本运行另一个 Python 脚本并将变量传递给它?

我有一个 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 python-2.x

2
推荐指数
1
解决办法
3834
查看次数

UnboundLocalError:赋值前引用的局部变量'W'

按照我之前的问题.我被建议创建一个单独的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 linux

1
推荐指数
1
解决办法
698
查看次数

当条件为真时运行另一个 .py 文件

我对 Python 很陌生,正在尝试使用 Python 在 Raspberry Pi2 中制作一个小项目

目前我有 2 个代码文件run1.pyrun2.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吗?我也想了解它是如何工作的,但还没有真正理解。

谢谢

python if-statement python-import raspberry-pi

0
推荐指数
1
解决办法
8155
查看次数