簡體   English   中英

如何在 python 中獲取帶有 pathlib 的腳本/exe 目錄?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM