xpanta
xpanta

Reputation: 8418

Python, open a file when the name is not fully known

I have a list of files with names such as these:

20140911_085234.csv 20140912_040056.csv

What is known is the first part which is the date (the second is a random number). How can I open the correct file if I know the date?

Update: There is one file per day.

Upvotes: 0

Views: 134

Answers (2)

German Petrov
German Petrov

Reputation: 1515

Using glob :

import time
import glob
import os

def open_file_by_date(date):
    path = "/path/to/file"
    files = glob.glob1(path, date + "_*.csv")
    for file in files:
        with open(os.path.join(path, file), 'wb') as f:
           #do your stuff with file

if __name__ == "__main__":
    today = time.strftime("%Y%m%d") 
    open_file_by_date(today)

Upvotes: 1

fenix688
fenix688

Reputation: 2615

As @isedev says, you could use the fnmatch method to find all the files with the "date" pattern. The code could be like this:

from fnmatch import fnmatch
import os

folder_path = '/home/Desktop/project'
all_files = os.listdir(folder_path)
content_file = 'Hello World'
_date = '20140911'
_pattern = _date + '*'
for file_name in all_files:
    if fnmatch(file_name, _pattern):
        with open(os.path.join(folder_path, file_name), 'wb') as f:
           f.write(content_file)

I hope it helps you!

Upvotes: 2

Related Questions