Python “如何修复”;跳线“;读取文件时出错

Python “如何修复”;跳线“;读取文件时出错,python,python-3.x,file,Python,Python 3.x,File,当我阅读我的文件时: for path in filepaths: df = pd.read_csv(r"{}".format(path), header=6, sep=",", engine="python", error_bad_lines=False)#, quoting=csv.QUOTE_NONE) # drops the columns that won't be used df = df.drop(

当我阅读我的文件时:

for path in filepaths:
    df = pd.read_csv(r"{}".format(path), header=6, sep=",", engine="python", error_bad_lines=False)#, quoting=csv.QUOTE_NONE)
    # drops the columns that won't be used
    df = df.drop(col_list, axis=1)
    # adds all the files data to list
    all_files.append(df)
我得到以下错误:

Skipping line 62: ',' expected after '"'
Skipping line 37: ',' expected after '"'
Skipping line 84: Expected 8 fields in line 84, saw 9
Skipping line 82: ',' expected after '"'
Skipping line 86: ',' expected after '"'
通过使用我看到有人建议的以下代码,我可以打印导致错误的行:

def checkRow(path, N):
    with open(path, 'r') as f:
        print(f"This is the {N}th line.")
        return(next(itertools.islice(csv.reader(f), N, None)))
输出:

This is the 62th line.
['56=', ' 56', '  9.3916', ' 0.1440', 'Propanedioic acid, propyl-', ' 21508', '000616-62-6', '50']
This is the 37th line.
['31=', ' 31', '  5.2522', ' 0.5319', '4-Heptanone (CAS) $$ GBL $$ Butyrone $$ Propyl ketone $$ Dipropyl ketone $$ Di-n-propyl ketone $$ Heptan-4-one $$ (n-C3H7)2CO $$ UN 2710 $$ 4-HEPTANON', ' 12512', '000123-19-3', '87']
This is the 84th line.
['78=', ' 78', ' 11.1865', ' 0.0182', 'Urea', '   300', '000057-13-6', '50']
但我无法发现这里的问题。 我尝试使用csv.QUOTE_NONE参数,我看到有人建议使用该参数,但这会导致跳过所有行:

# opening all files in folders
for path in filepaths:
    df = pd.read_csv(r"{}".format(path), header=6, sep=",", engine="python", error_bad_lines=False), quoting=csv.QUOTE_NONE)
    # drops the columns that won't be used
    df = df.drop(col_list, axis=1)
    # adds all the files data to list
    all_files.append(df)
错误:

.....
Skipping line 55: Expected 8 fields in line 55, saw 9
Skipping line 57: Expected 8 fields in line 57, saw 9
Skipping line 59: Expected 8 fields in line 59, saw 10
Skipping line 60: Expected 8 fields in line 60, saw 9
Skipping line 62: Expected 8 fields in line 62, saw 10
Skipping line 63: Expected 8 fields in line 63, saw 10
Skipping line 67: Expected 8 fields in line 67, saw 9
Skipping line 69: Expected 8 fields in line 69, saw 11
.....

您是否可以显示实际的第62、37、64行等。而不是使用csv阅读器,这样我们可以看到实际的行内容。@JonathanCowling感谢您的回复,我不确定在哪里可以找到这些行,因为我正在打开多个文件,所以当错误显示“跳过第62行”时,我不确定它指的是哪个文件。好的,如果您有可能找到一个有错误的文件,您可以在打印任何错误之前尝试打印文件名,或者通过分批或一次测试一个有错误的文件(取决于您处理的文件数量)来缩小文件范围。我特别想知道的是,是否是CSV文件本身包含错误,如果是,是什么类型的错误,一旦排除了错误,那么更详细地查看代码本身是有意义的。基于上述错误,我认为一些CSV文件没有包含您提到的行的全部6列(但最好确认)。您能否显示实际的第62、37、64行等。这样我们就可以看到实际的行内容,而不是使用CSV阅读器。@JonathanCowling感谢您的回复,我不确定在哪里可以找到这些行,因为我正在打开多个文件,所以当错误显示为“跳过第62行”时,我不确定它所指的是哪个文件。好的,如果您可能找到包含其中一个错误的文件,您可以在打印任何错误之前尝试打印文件名,或者通过成批或一次测试一个文件(取决于您处理的文件数量),缩小有错误的文件范围。我特别想知道的是,是否是CSV文件本身包含错误,如果是,是什么类型的错误,一旦排除了错误,那么更详细地查看代码本身是有意义的。基于上述错误,我认为一些CSV文件没有包含您提到的行的全部6列(但最好确认一下)。