上下文:我正在尝试将代码从 Matlab 迁移到 python。在 matlab 中,如果将两个文件放在同一个文件夹下,从其他脚本运行推荐行或函数唯一需要做的就是输入文件名。即在 file1.m 中,如果我输入 file2.m,它将自动运行 file2.m 中的所有代码行,并在同一工作空间中共享全局变量。
我尝试在 python 中做类似的事情。然而,即使在阅读了网上的帖子后,我仍然有点困惑。
所以我有以下选项,每个选项似乎都有其独特的优势,但帖子并没有对所有选项进行明确比较。
import
os.system
os.popen()
subprocess.Popen()
subprocess.call()
execfile
或者干脆
exec(open(dir+'\\a.py').read())
print(x) #outputs 1
我需要它工作的方式是使用 let file2.py 我们在 file1.py 中相同的变量,并且 file2.py 生成的变量可以被 file1.py 自由读取,就像在一个文件中运行一系列命令一样,或者在 Matlab 的同一工作区中运行它。
有人提到execfile不能传参???因此最好的方法是使用 os.system,其他一些人也提到 subprocess 比 os.system 更好,但我不确定使用 subprocess 是否会不同地影响变量的使用?还有一些人使用 subprocess.Propen() 和一些人使用 subprocess.call()。但在我看来, exec(open(dir+'\a.py').read()) 似乎是我为这个过程考虑的最接近的方式。
我应该使用哪一种,为什么它更好?
您能否制作一个“目录”或表格,从根本上明确我应该在什么类型的情况下使用哪个?
慕沐林林
温温酱
相关分类