首先,我明白我不应该返回ifname==“main”中的任何内容,它只应该包含对main()的调用。你知道吗
我要做的是通过python文件的路径从一个很远的文件调用它(导入文件/函数不是一个选项)
目前我用这个来调用我的文件
result = subprocess.getstatusoutput('python farAwayFile.py')
但是,我想从这个文件中得到一个类似于。。。你知道吗
("success", "I am farAwayFile print statement")
在我的farAwayFile.py文件你知道吗
def main():
print('I am farAwayFile print statement')
return "success"
if __name__ == "__main__":
main()
如果在我的farAwayFile.py文件我改变了。。。你知道吗
if __name__ == "__main__":
return main()
我得到了想要的结果,但是在函数定义之外有一个return语句,它会干扰任何pylint。你知道吗
所以我的问题是,我如何从我的farAwayFile.py?你知道吗
在UNIX shell中,返回值介于0和255之间,因此不能在最终的return语句中返回字符串(当然可以,但不能使用返回值)。
使用
subprocess.stout/stderr
获取print语句;subprocess.returncode
获取returncode。你知道吗最好的方法是导入模块。你知道吗
还可以将farAwayFile的返回值写入文件(使用pickle),然后在主程序中读回。你知道吗
我认为假设你不知道怎么做比你不知道更安全。你知道吗
您已经知道该文件的路径,因为您希望将其作为子进程运行,所以为什么不将该路径添加到路径?;)
IDE会抱怨他们不知道导入的模块(因为它不显示在他们的依赖项中;您可以修复它,使建议正确显示),如果他们检查PEP8,您会收到关于导入未在文件顶部的抱怨。但它会起作用的。你知道吗
这样,您就不必更改模块中的任何内容,也不必像有人在评论中建议的那样将任何内容写入磁盘。你知道吗
相关问题 更多 >
编程相关推荐