我正在寻找一种在同一文件夹中打开另一个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
,机制将是相同的。