python - 如何测试当前目录是否为 $HOME?

标签 python python-3.x

我正在将 shell 脚本转换为 Python 脚本,但在测试 IF 条件时遇到了一些问题。在此环境中,我们运行的是 Python 3.9.2。

我最初设置了 2 个变量(homeDir 和 curDir),创建一个 if-else 条件来测试变量是否相等。

运行脚本我 cd 到 $HOME 目录并运行 Python 脚本。

它总是打印“False”,即使控制台输出显示变量相等。

我希望脚本在 $HOME 目录中运行脚本时返回“Take Action ABC”。

显示输出的屏幕截图:
enter image description here

代码示例:

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。出于这个原因,它们不会比较相等,即使在语义上它们是相同的路径。使用一个或另一个模块,而不是混合使用 pathlibos。一种解决方案是更换

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/

相关文章:

python-3.x - 合并将时间戳转换为科学计数法并失去精度

python - Pandas 数据框中最大值的索引和列

python - 如何在其他列满足特定条件的情况下替换 NaN 值?

python - 在 Python 中将 JSON 转换为换行符分隔的 JSON

image - 在图像中用白色替换黑色,用白色替换黑色

python - statsmodels.api.tsa.get_forcast 的参数是什么?

python - 在 Python 中使用 pprint.pprint 后,我​​可以避免排序字典输出吗?

python - 字符串的一部分与字典键字符串匹配

python - 将列表函数应用于 itertools.groupby 中的嵌套生成器

python - 通用代码的类型提示