使用 "Subprocess Call" 在 unkown 目录中调用程序



我正在寻找一种在同一文件夹中打开另一个python文件的方法,但它可能在PC上的任何地方。(即当我将它发送给某人时,程序应该能够找到文件的路径(blahblahblahIDLELogin,py)。

这是我目前在谷歌搜索后的代码,但我真的不知道我在做什么。

from subprocess import call
import subprocess
import os
def main():
subprocess.call(['bash' , os.path.expanduser('~')  + "IDLELogin.py" ] )
if __name__ == '__main__':
main()

我知道其中一个子进程导入是多余的,但它只是旧代码的残余,而我试图找到这个新方法。

项目的最终目标是使用文件,并将其转换为可执行文件,以运行目录中所有其他相互调用的文件。

多谢!

这将为您提供脚本位置的完整路径

print('sys.argv[0] =', sys.argv[0])             
pathname = os.path.dirname(sys.argv[0])        
print('path =', pathname)
print('full path =', os.path.abspath(pathname)) 

下面是如何运行bash来执行一个名为"Login.py"的脚本,该脚本与当前运行的Python文件位于同一目录:

import subprocess
import os
def main():
here = os.path.dirname(os.path.abspath(__file__))
subprocess.call(['bash', os.path.join(here, "Login.py")])
if __name__ == '__main__':
main()

__file__总是包含正在执行的Python代码的文件路径。

我不知道为什么你想在.py文件上运行bash,但是如果你想运行python,或者想在一个名为Login.sh的文件上运行bash,机制将是相同的。

相关内容

最新更新