蟒蛇:发送两个脚本
之间的信息我已经在两个不同位置的两个Python脚本,不能移动。什么是送两个脚本之间信息的最佳方式是什么?蟒蛇:发送两个脚本
说例如在script1.py我有一个字符串,例如
x = 'teststring'
然后我需要变量'x'传递给script2.py,它将变量'x'保存到文本文件中?
任何想法?
你刚才导入。
#script2.py
from script1 import x
为了使SCRIPT2找到SCRIPT1,该SCRIPT1文件必须在module search path
编辑
下面是一个例子:
首先我们创建一个目录,并显示模块搜索路径的值:
$mkdir some_dir
$echo $PYTHONPATH
这是理智最多。然后,我们创建在该目录初始化为“HOLA”变量x
文件:
$cat >some_dir/module_a.py <<.
> x = "hola"
> .
我们创建另一个Python文件使用它:
$cat >module_b.py<<.
> from module_a import x
> print x
> .
如果我们运行第二个脚本,我们得到错误:
$python module_b.py
Traceback (most recent call last):
File "module_b.py", line 1, in <module>
from module_a import x
ImportError: No module named module_a
但是,如果我们指定some_dir在模块搜索路径,并重新运行,应该工作:
$export PYTHONPATH=some_dir
$python module_b.py
hola
会的工作,即使脚本是在两个不同的位置? – Peter 2010-06-18 03:00:01
@彼得:)我知道这将是下一个问题,我正在寻找参考。我已经更新了答案。对于一个(位)更完整的示例,请参阅:http://*.com/questions/3066126/python-sending-a-variable-to-another-script/3066158#3066158 – OscarRyz 2010-06-18 03:00:56
而不是修改PYTHONPATH,你可能想改为在需要使用其他文件的程序中,将路径附加到sys.path中的some_dir。这样做的好处是不需要为单个项目修改PYTHONPATH。 – EOL 2010-06-18 10:06:44
如何使用套接字?
这是一个关于Python中的网络编程的好教程。它包括客户机/服务器示例脚本:
这里是这样做的标准方式,你想要什么:
import sys
sys.path.append('/path/to/the_other_module_dir')
import script1
print script1.x
事实上,如果你修改环境变量PYTHONPATH每个单个项目涉及不在同一个目录中的模块,则会产生不必要的长PYTHONPATH变量和脚本的用户也将不得不修改其PYTHONPATH。上述规范的方法解决了这些问题。
或者,你可能想直接导入x
:
from script1 import x
print x
你是什么意思是“不同的位置”吗? – 2010-06-18 03:13:54