2017-09-21 419 views
1

我正在使用glob.glob()讀取一些文件。我想讀取所有名稱爲123 * .txt的文件,除了那些帶有123 * error.txt的文件。另外,有沒有辦法在for循環中打印文件名,這是在pd.concat()中?如何使用glob.glob()讀取時排除某些文件?

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

使用此模式

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

+0

謝謝!有效!我以爲我嘗試了所有這些組合,但可能不是。 –

相關問題