if\uuu name\uuuuu==“\uuuu main\uuuuu”返回语句

2024-06-16 09:13:45 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我明白我不应该返回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?你知道吗


Tags: 文件函数namepy路径内容returnif
2条回答

在UNIX shell中,返回值介于0和255之间,因此不能在最终的return语句中返回字符串(当然可以,但不能使用返回值)。
使用subprocess.stout/stderr获取print语句;subprocess.returncode获取returncode。你知道吗

最好的方法是导入模块。你知道吗

还可以将farAwayFile的返回值写入文件(使用pickle),然后在主程序中读回。你知道吗

What I am trying to do is call a python file through its path from a far away file (importing file/function is not a option)

我认为假设你不知道怎么做比你不知道更安全。你知道吗

您已经知道该文件的路径,因为您希望将其作为子进程运行,所以为什么不将该路径添加到路径?;)

import sys
sys.path.append("/your/path/here")
from farAwayFile import main

IDE会抱怨他们不知道导入的模块(因为它不显示在他们的依赖项中;您可以修复它,使建议正确显示),如果他们检查PEP8,您会收到关于导入未在文件顶部的抱怨。但它会起作用的。你知道吗

这样,您就不必更改模块中的任何内容,也不必像有人在评论中建议的那样将任何内容写入磁盘。你知道吗

相关问题 更多 >