使用python从文件名的部分创建一个数组

时间:2016-11-17 04:34:05

标签: python arrays filesystems

我有一个csv文件目录,例如

c:\data

将包含以下文件

ext-FLA-1.csv

ext-KDY-1.csv

etx-EIR-1.csv

我想提取一个只包含每个文件的大写字母的数组。

files = glob.glob('c:\\data/*.csv')

会给我一个包含所有csv文件的数组。但是我希望文件数组只包含

files = ['FLA','KDY','EIR']

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式:

import re
import os
files = [re.findall(r'[A-Z]+', f)[0] for f in os.listdir('c:\\data') if re.search(r'.csv$', f)]

或者如果您只需要大写字母:

^[a-zA-Z][a-zA-Z]*[ -][a-zA-Z]*[a-zA-Z]$|^[a-zA-Z][a-zA-Z]*([a-zA-Z]|\.)$