如何获取调用 Python 可执行文件的目录?
How to get the directory from which a Python executable is being called?
A Python 3 程序已被编译成名为 myapp.exe
的 exe 文件,并使用 pyinstaller 位于 C:\path\to\myapp.exe
或 /path/to/myapp.exe
。
另一个程序从同一台机器上任意位置的某个其他任意位置调用可执行文件。例如,来自 C:\another\arbitrary\path\
或来自 /another/arbitrary/path/
.
为了使 myapp.exe
能够以编程方式引用 myapp.exe
所在的其他任意路径,必须将哪些特定语法添加到编译成 myapp.exe
的代码中在任何给定时间点被调用?
当前代码
编译成 myapp.exe
的 myapp.py
文件的当前代码是:
print('Hello World!')
所需代码
我正在寻找的代码应该类似于:
yourCallingDirectoryAtAnotherArbitraryPath = code requested in this OP
print('Hello, you are calling from ', yourCallingDirectoryAtAnotherArbitraryPath)
这必须适用于任何 OS。
通常更困难的工作是让可执行文件找出它自己的存储位置。当您启动程序时,当前目录可供具有 shorthand 路径名 .
的可执行文件使用
所以要获取当前目录的绝对路径,很简单:
import os
print (os.path.abspath("."))
A Python 3 程序已被编译成名为 myapp.exe
的 exe 文件,并使用 pyinstaller 位于 C:\path\to\myapp.exe
或 /path/to/myapp.exe
。
另一个程序从同一台机器上任意位置的某个其他任意位置调用可执行文件。例如,来自 C:\another\arbitrary\path\
或来自 /another/arbitrary/path/
.
为了使 myapp.exe
能够以编程方式引用 myapp.exe
所在的其他任意路径,必须将哪些特定语法添加到编译成 myapp.exe
的代码中在任何给定时间点被调用?
当前代码
编译成 myapp.exe
的 myapp.py
文件的当前代码是:
print('Hello World!')
所需代码
我正在寻找的代码应该类似于:
yourCallingDirectoryAtAnotherArbitraryPath = code requested in this OP
print('Hello, you are calling from ', yourCallingDirectoryAtAnotherArbitraryPath)
这必须适用于任何 OS。
通常更困难的工作是让可执行文件找出它自己的存储位置。当您启动程序时,当前目录可供具有 shorthand 路径名 .
所以要获取当前目录的绝对路径,很简单:
import os
print (os.path.abspath("."))