[英]How can I get the script / exe directory with pathlib in python?
我在 Python 3.9.2 中制作了一個腳本,它使用 pathlib (pathlib.Path.cwd())
來獲取當前腳本的文件夾(然后我使用 PyInstaller 制作了一個.exe 文件)
如果我手動啟動腳本/exe不用擔心,但是如果我使用 windows 調度程序或者我在當前文件夾中沒有蜜蜂的情況下啟動腳本/.exe,pathlib.Path.cwd pathlib.Path.cwd()
(正確)獲取我所在的當前文件夾,不是腳本的文件夾
例如在 windows 端子中
cd [...]\folderWithMyScript
py myScript.py
效果很好,但如果我在我的主目錄C:\Users\myName
並從那里啟動腳本
py [pathToTheScript]
它不會工作(因為他找不到腳本文件夾下面的其他文件夾,整個腳本使用了很多.joinpath('something')
先感謝您!
pathlib.Path.cwd()
不會給你腳本的文件夾,它是獲取當前工作目錄。 也就是你運行命令來運行腳本的地方。 獲取腳本文件夾的正確方法是: os.path.dirname(os.path.realpath(__file__))
請參閱如何找到腳本的目錄?
所以,最后我放棄並使用了os
lib
我做了這樣的事情(所以我仍然可以在整個腳本中使用 pathlib)
trueDir = pathlib.Path(os.path.dirname(os.path.realpath(__file__)))
感謝您的所有友好回答!
VersBersch 的答案應該是正確的答案。
Path(__file__).resolve(strict=True).parent[]
我剛剛發現的重要一點是,如果要將程序轉換為可執行文件,使用__file__
可能會遇到麻煩。 相反,您應該使用sys.executable
。 花了我一段時間才發現... 來源
file_path = os.path.dirname(sys.executable)
獲取.exe的路徑目錄
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.