rd45
rd45

Reputation: 337

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

I am trying to run this code in Pycharm, but I'm getting below error:

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

This is for windows 10, running on 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()

Upvotes: 22

Views: 151737

Answers (4)

Muhammadalive
Muhammadalive

Reputation: 1086

Remove pycache folders and try one more again

Upvotes: -2

chizmenia
chizmenia

Reputation: 1

Python expects that there will be, for example, a string (str) or a PathLike object, which you can read about in the official documentation https://docs.python.org/3/library/os.path.html#module-os.path

Upvotes: -1

cona mx
cona mx

Reputation: 55

Delete .condarc file in location C:\Users\UserName\

Upvotes: 1

vvk24
vvk24

Reputation: 490

Apparently os.getenv("HOME") would return a Nonetype value if the environment variable doesn't exist. Try os.getenv('HOME', "not found") to be sure. --gives output as "not found" if the env is not available. Rather, you can use os.getcwd() if the .py file exits in the same directory as birth_day_lookup.txt. Hope this helps.

Upvotes: 8

Related Questions