I tried writing something where Python checks a file's number of words yesterday and the file's words today. Then it compares the values of both with each other and gives you a message according to how much you wrote since yesterday.
But it seems to save the same word count value in both yesterday and today.
import datetime
today = datetime.date.today()
yesterday = datetime.date.today() datetime.timedelta(days=-1)
if yesterday:
file = open("python_test.txt", "r")
read_data = file.read()
per_word = read_data.split()
y = len(per_word)
if today:
file = open("python_test.txt", "r")
read_data = file.read()
per_word = read_data.split()
x = len(per_word)
if x > y:
print("Good job! You wrote a lot!")
else:
print("You should try to keep up!")
Any idea on how to fix that or how to optimize the code?
CodePudding user response:
Because yesterday and today are dates, they always are True with if statement. And you read same text file for yesterday and today so your code ran wrong. Try this
import datetime
today = datetime.date.today()
yesterday = datetime.date.today() datetime.timedelta(days=-1)
try: # check if file exists
with open(f"data_{yesterday}.txt", "r") as read_yesterday: # data_2022-07-22.txt file
yesterday_data = read_yesterday.read()
per_word = yesterday_data.split()
yesterday_count = len(per_word)
except:
yesterday_count = 0
try: # check if file exists
with open(f"data_{today}.txt", "r") as read_today: # data_2022-07-23.txt file
today_data = read_today.read()
per_word = today_data.split()
today_count = len(per_word)
except:
today_count = 0
if today_count > yesterday_count:
print("Good job! You wrote a lot!")
else:
print("You should try to keep up!")
