我正在将 shell 脚本转换为 Python 脚本,但在测试 IF 条件时遇到了一些问题。在此环境中,我们运行的是 Python 3.9.2。
我最初设置了 2 个变量(homeDir 和 curDir),创建一个 if-else 条件来测试变量是否相等。
运行脚本我 cd 到 $HOME 目录并运行 Python 脚本。
它总是打印“False”,即使控制台输出显示变量相等。
我希望脚本在 $HOME 目录中运行脚本时返回“Take Action ABC”。
代码示例:
import os
from pathlib import Path
homeDir = Path.home()
curDir = os.getcwd()
print('DEBUG homeDir:', homeDir)
print('DEBUG curDir:', curDir)
if curDir == homeDir:
print('True')
else:
print('False')
最佳答案
你有不同类型的对象; homeDir
是一个 Path
对象,而 curDir
是一个 str
。出于这个原因,它们不会比较相等,即使在语义上它们是相同的路径。使用一个或另一个模块,而不是混合使用 pathlib
和 os
。一种解决方案是更换
os.getcwd()
与
Path.cwd()
后者是 pathlib
equivalent to os.getcwd()
.
从我的当前目录是我的用户主目录调用的 Python 3.9 REPL 的示例:
>>> os.getcwd() == Path.home()
False
>>> Path.cwd() == Path.home()
True
关于python - 如何测试当前目录是否为 $HOME?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67171541/