TypeError:预期的str,字节或os.PathLike对象,而不是None类型

时间:2019-07-05 07:39:22

标签: python python-3.x

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

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

这是针对在Pycharm,python 3.7上运行的Windows 10

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()

3 个答案:

答案 0 :(得分:1)

删除位置.condarc中的C:\Users\UserName\文件

答案 1 :(得分:0)

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

答案 2 :(得分:0)

Python 期望会有,例如,字符串(str)或 PathLike 对象,您可以在官方文档中阅读https://docs.python.org/3/library/os.path.html#module-os.path