python:在两个脚本之间发送信息

时间:2010-06-18 02:56:09

标签: python

我在两个不同的位置有两个Python脚本,无法移动。在两个脚本之间发送信息的最佳方式是什么?

例如在script1.py中说我有一个字符串,例如

  

x ='teststring'

然后我需要传递给script2.py的变量'x',它将变量'x'保存到文本文件中?

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

您只需导入它。

#script2.py
from script1 import x

要使script2找到script1,script1文件必须位于module search path

修改

以下是一个例子:

首先我们创建一个目录并显示模块搜索路径的值:

$mkdir some_dir
$echo $PYTHONPATH

没有。然后我们在该目录中创建一个变量x初始化为“hola”的文件:

$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

答案 1 :(得分:0)

使用套接字怎么样?

这是一篇关于Python中网络编程的好教程。它包括客户端/服务器示例脚本:

http://heather.cs.ucdavis.edu/~matloff/Python/PyNet.pdf

答案 2 :(得分:0)

以下是做你想做的事情的标准方法:

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