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?
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.
import os prefixed = [filename for filename in os.listdir('.') if filename.startswith("prefix")]
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...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With