类型错误:应为 str、字节或 os.PathLike 对象,而不是无类型

新手上路,请多包涵

我试图在 Pycharm 中运行此代码,但出现以下错误:

 TypeError: expected str, bytes or os.PathLike object, not NoneType

这适用于 Windows 10,在 Pycharm、python 3.7 上运行

import os
import time
file_path = os.path.join(os.getenv("HOME"), "birth_day_lookup.txt")

def check_birthday():

    lookup_file = open(file_path, 'r')
    today = time.strftime('%d-%B')
    flag = 0
    for entry in lookup_file:
        if today in entry:
            line = entry.split(' ')
            flag = 1
            os.system('notify-send "Today is '+line[1]+' '+line[2]+'\'s Birthday"')
    if flag == 0:
        os.system('notify-send "No birthday for today is listed"')

check_birthday()

原文由 rd45 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.9k
1 个回答

显然 os.getenv("HOME") 如果环境变量不存在,将返回 Nonetype 值。尝试 os.getenv('HOME', "not found") 确定。 –如果环境不可用,则输出为“未找到”。相反,您可以使用 os.getcwd() 如果 .py 文件存在于与 birth_day_lookup.txt 相同的目录中。希望这可以帮助。

原文由 vvk24 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题