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

4

我正在使用 glob.glob() 读取一些文件。我想读取所有名字为 123*.txt 的文件,但不包括名字为 123*error.txt 的文件。此外,在 pd.concat() 中的 for 循环中是否有一种方法可以打印文件名?

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个回答

7

使用这种模式

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))

参考 这篇帖子


谢谢!它起作用了!我以为我尝试了所有这些组合,但可能不是。 - Sikander Waheed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接