Bill TP
Bill TP

Reputation: 1097

How to get a list of file names in a directory in Python

Problem:

In my "D:/collection" folder, I have two types of files, that are "8-digit-number_type.dbf" and "character_type.dbf" as follows: 00093282.dbf, 00345602.dbf, 69209340.dbf, 69806980.dbf, 92406482.dbf, 93609360.dbf,..., aaa.dbf, bbb.dbf,....

Objective:

I want to take only the "8-digit-number_type.dbf" files, and exclude the "character_type.dbf" files from my analysis. I don't care about the "character_type.dbf" files. Then, I'd like to split the 8 digits into two 4-digit values. So, a listing file(say,list.txt) with two columns should look like the following:

0009 3282
0034 5602
6920 9340
6980 6980
9240 6482
9360 9360
....

And these values should be stored as character type.

How can I implement that in Python? Thank you.

Sincerely, Bill TP

Upvotes: 3

Views: 396

Answers (2)

sajattack
sajattack

Reputation: 813

To use os.listdir(path) with jamylak's solution, simply put the import statement from os import listdir on the second line and change the paths declaration to paths = listdir('D:/')

Upvotes: 1

jamylak
jamylak

Reputation: 133504

>>> import os
>>> paths = ['00093282.dbf', '00345602.dbf', '69209340.dbf', '69806980.dbf', '92406482.dbf', '93609360.dbf','aaa.dbf', 'bbb.dbf']
>>> for path in paths:
        file_name,ext = os.path.splitext(path)
        if file_name.isdigit():
            print '{0} {1}'.format(file_name[:4],file_name[4:])


0009 3282
0034 5602
6920 9340
6980 6980
9240 6482
9360 9360

Upvotes: 3

Related Questions