首页 > 解决方案 > 在另一个 python 文件中运行一个 python 文件(没有类和函数)

问题描述

我有一个简单的python文件,p1.py,它基本上有这个

#!/usr/bin/python
a=1
b=2
c=3
s1=a+b
s2=a+c
s3=b+c

在我的第二个文件 p2.py 中,我想访问 s1、s2 和 s3 的值。我尝试关注我的第二个文件,但它不起作用。

#!/usr/bin/python
import os
import os.path
import math
import sys
import subprocess

os.system('python p1.py')
print('the value of first variable is' + s1 + 'second is' +s2 + 'and third is' + s3)

我也尝试过使用

proc = subprocess.Popen(['python', 'p1.py'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

但我无法s1, s2 or s3从我的第二个文件中访问 in 的值。我阅读了大多数人建议使用带函数的类的其他解决方案,但我在第一个文件中有数百行变量(a,b,c)和结果(s1,s2, s3)等,因此直接读取和执行似乎是唯一的选择。

标签: pythonsubprocess

解决方案


其他建议使用类和函数的人在更高的层次上是正确的。一切都是为了让您的代码更易于阅读、使用、扩展和维护的良好设计。

话虽这么说,要实现您想要实现的目标,您可以这样做:

# In p2.py:
import p1

print("The value of s1 is" + p1.s1)

import语句将加载p1文件并执行其中的所有模块级语句,并使声明的变量对您可用。如果您不想为所有内容添加前缀,p1.那么您可以这样做from p1 import *,但是事情很快就会变得非常混乱。



推荐阅读