我试图在python上读取一些.csv字段数据进行后期处理,我通常只使用类似的东西:
for flist in glob('*.csv'):
df = pd.read_csv(flist, delimiter = ',')
但是我需要在文件中的某处过滤掉包含“Run_Terminated”的错误文件,并完全跳过该文件。我还是python的新手,所以我不熟悉它的所有功能,任何输入都会受到赞赏。谢谢。
答案 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 = ',')