Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Choose a file starting with a given string

Tags:

python

file

In a directory I have a lot of files, named more or less like this:

001_MN_DX_1_M_32 001_MN_SX_1_M_33 012_BC_2_F_23 ... ... 

In Python, I have to write a code that selects from the directory a file starting with a certain string. For example, if the string is 001_MN_DX, Python selects the first file, and so on.

How can I do it?

like image 307
this.is.not.a.nick Avatar asked Mar 09 '13 16:03

this.is.not.a.nick


People also ask

How do I find a file with a specific name?

Finding files by name is probably the most common use of the find command. To find a file by its name, use the -name option followed by the name of the file you are searching for.


2 Answers

import os prefixed = [filename for filename in os.listdir('.') if filename.startswith("prefix")] 
like image 148
Marc Laugharn Avatar answered Sep 22 '22 09:09

Marc Laugharn


Try using os.listdir,os.path.join and os.path.isfile.
In long form (with for loops),

import os path = 'C:/' files = [] for i in os.listdir(path):     if os.path.isfile(os.path.join(path,i)) and '001_MN_DX' in i:         files.append(i) 

Code, with list-comprehensions is

import os path = 'C:/' files = [i for i in os.listdir(path) if os.path.isfile(os.path.join(path,i)) and \          '001_MN_DX' in i] 

Check here for the long explanation...

like image 37
pradyunsg Avatar answered Sep 21 '22 09:09

pradyunsg