使用glob.glob()读取时如何排除某些文件?

时间:2017-09-21 21:40:51

标签: python-3.x pandas glob

我正在使用glob.glob()读取一些文件。我想读取名称为123 * .txt的所有文件,但123 * error.txt除外。还有,有办法在for循环中打印文件名,这是在pd.concat()里面吗?

fields = ['StudentID', 'Grade']
path= 'C:/script_testing/'

parse = lambda f: pd.read_csv(f, usecols=fields)
table3 = pd.concat(
[parse(f) for f in glob.glob('C:/script_testing/**/*.txt', recursive=True)]
).pipe(lambda d: pd.crosstab(d.StudentID, d.Grade))

1 个答案:

答案 0 :(得分:2)

使用此模式

files = glob.glob('C:/script_testing/**/123*[!error].txt`, recursive=True)

然后继续

fields = ['StudentID', 'Grade']
path= 'C:/script_testing/'

parse = lambda f: pd.read_csv(f, usecols=fields)
table3 = pd.concat(
    [parse(f) for f in files]
).pipe(lambda d: pd.crosstab(d.StudentID, d.Grade))

参考this post