Python 在中打开文本文件时仅选择某些行

Python 在中打开文本文件时仅选择某些行,python,text,pandas,Python,Text,Pandas,我有一个文本文件,前80行用制表符分隔,这些是我在文件中需要的唯一行。我通常会这样打开文件: df=pd.read_csv(r'file.txt', sep='\t') 但这会返回错误: CParserError: Error tokenizing data. C error: Expected 7 fields in line 84, saw 81 因为沿途的某个地方它不再是制表符分隔的,我很确定。如果我手动删除文件中除前80行之外的所有内容,我可以设置制表符分隔符,它看起来很好,但是我需

我有一个文本文件,前80行用制表符分隔,这些是我在文件中需要的唯一行。我通常会这样打开文件:

df=pd.read_csv(r'file.txt', sep='\t')
但这会返回错误:

CParserError: Error tokenizing data. C error: Expected 7 fields in line 84, saw 81
因为沿途的某个地方它不再是制表符分隔的,我很确定。如果我手动删除文件中除前80行之外的所有内容,我可以设置制表符分隔符,它看起来很好,但是我需要对很多文件执行此操作。我知道我只能使用以下选项选择前80个:

df=df.iloc[:80,:]

但是,我的数据帧用
\t
分隔每一列,而不是像我想要的那样用空格分隔。是否有一种方法可以在打开文件时仅选择前80行,这样我就可以设置
sep='\t'
,而不会出现错误?

您可以使用参数指定仅读取前80行:


您可以设置错误参数true,它将删除空白或错误的行。根据我的观点,nrows不适合,因为您必须手动添加每个文件的行数

    df=pd.read_csv(r'file.txt', sep='\t', error_bad_lines=False)
您还可以查看这些属性

警告错误线路

跳过空白行


我也会调查这一点,nrows确实对我有用,所以它们一定已经被指定了。啊,当然,一切都很好
    df=pd.read_csv(r'file.txt', sep='\t', error_bad_lines=False)