Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Python for File Systems Manipulation Daily Backup

that by calling create_daily_dir("04-22-2017"), we'd have a directory structure like financial/2017-04-22/.

Need help. Point out what is wrong.

Thanks

backup.py
import re
import os, sys

def create_daily_dir(string):
    year = re.search(r'\d{4}', string)
    day = re.search(r'\d{2}-\d{2}', string)
    string = "/create_daily_dir/financial"
    os.makedirs(os.string.join(os.getcwd(),'financial/' + year.group(0) + "-" + day.group(0)))

1 Answer

Chris Freeman
MOD
Chris Freeman
Treehouse Moderator 68,423 Points

You are very close! Three fixes should get you going again:

  • In the regular expression for the variable day, it is possible to get a false match from the last two digits of year followed by a hyphen. One way to avoid this false match is to include a boundary marker of a \b. As in:
r'\b\d{2}-\d{2}\b'
  • The second fix is to use os.path.join instead of os.string.join

  • the last fix is to omit the trailing / from financial since it is added by the join.

Post back if you need more help. Good luck!!!

I am still getting Bummer.

import re
import os, sys


def create_daily_dir(string):
    year = re.search(r'\d{4}', string)
    day = re.search(r'\b\d{2}-\d{2}\b', string)
    string = "/create_daily_dir"
    os.makedirs(os.path.join(os.getcwd(),'financial/' + year.group(0) + "-" + day.group(0)))

[MOD: added ```python formatting -cf]

Chris Freeman
Chris Freeman
Treehouse Moderator 68,423 Points

Very close. Remove the trailing / after β€œfinancial” since it is added by the path.join method. You effectively have a double slash.

Edit: never mind! Your code worked for me:

import re
import os, sys


def create_daily_dir(string):
    year = re.search(r'\d{4}', string)
    day = re.search(r'\b\d{2}-\d{2}\b', string)
    string = "/create_daily_dir"
    os.makedirs(os.path.join(os.getcwd(),'financial/' + year.group(0) + "-" + day.group(0)))