我在两个不同的位置有两个Python脚本,无法移动。在两个脚本之间发送信息的最佳方式是什么?
例如在script1.py中说我有一个字符串,例如
x ='teststring'
然后我需要传递给script2.py的变量'x',它将变量'x'保存到文本文件中?
有什么想法吗?
答案 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中网络编程的好教程。它包括客户端/服务器示例脚本:
答案 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