Python:解析多个csv文件并跳过没有关键字

时间:2017-02-06 13:48:09

标签: python csv

我试图在python上读取一些.csv字段数据进行后期处理,我通常只使用类似的东西:

for flist in glob('*.csv'):
    df = pd.read_csv(flist, delimiter = ',')

但是我需要在文件中的某处过滤掉包含“Run_Terminated”的错误文件,并完全跳过该文件。我还是python的新手,所以我不熟悉它的所有功能,任何输入都会受到赞赏。谢谢。

1 个答案:

答案 0 :(得分:2)

你可以做的是首先在内存中完全读取文件(使用io.StringIO类文件对象并在文件中的任何位置查找Run_Terminated字符串(脏,但应该没问题),

然后将句柄传递给read_csv(因为您可以传递句柄或文件名),这样您就不必再从文件中读取它了。

import pandas as pd
import glob
import io

for flist in glob('*.csv'):
    with open(flist) as f:
        data = io.StringIO()
        data.write(f.read())
    if "Run_Terminated" not in data.getvalue():
        data.seek(0)  # rewind or it won't read anything
        df = pd.read_csv(data, delimiter = ',')