假设我在目录a中有一个符号链接,它指向目录B中的一个python文件。当我执行符号链接时,目录B中的python文件成功执行(它还使用其目录中的其他python文件)。然而,在操作系统方面使用符号链接有很多问题,所以我想用普通python来模拟
这是我到目前为止所拥有的
目录A中的文件:
import os
import sys
sys.path.append("DirectoryB") # File_B is importable now
os.chdir("DirectoryB") # Change dir so File_B's imports work
import File_B # Run File_B
因此,现在当目录A文件运行时,文件B将成功运行,就像目录A中的文件是符号链接一样
这种方法是否有任何错误/缺失?有没有办法做得更好
您的问题非常类似于从另一个python脚本调用python脚本,该脚本在Run a python script from another python script, passing in args和What is the best way to call a Python script from another Python script?中已经有两个答案 您的片段还可以,但可能与符号链接有一些不同。例如,如果File_B使用经典的习惯用法
if __name__ == '__main__':
,那么在导入时“If”将不是真的,您应该直接调用该部分中的代码要调用文件_B,可以使用
ececfile("/path_to/File_B")
来维护相同的参数,如果需要更改参数,可以使用os.system("/path_to/File_B %s" % ' '.join(arglist))
如果您希望避免使用操作系统并将其保存在Python中,请检查是否必须在导入后调用函数或添加一些代码(例如,如果文件_B具有
if __name__ == '__main__':
)。在{a3}中,有一些建议可以保留这些论点相关问题 更多 >
编程相关推荐