在python中使用拆分从制表符分隔的文本/csv文件中列出空列索引

在python中使用拆分从制表符分隔的文本/csv文件中列出空列索引,python,file,split,Python,File,Split,我有一个5列三行的csv文件。列由制表符分隔,行由新行分隔。有些元素是空的。我必须找到所有行的空列。文件如下: 我的代码如下。问题是,它对最后一列不起作用,即,如果最后一列为空,或者行中最后一个制表符后的最后一列中没有值,它仍然被计为非空字符串。我检查了“eachElement”的长度,奇怪的是,第一行和第二行的长度显示为1,但第三行的长度显示为空字符串。看起来它在前两行(因此长度为1)的最后一列的最后一个制表符后计算新行,但逻辑上不应该,因为我使用了“for line in content”

我有一个5列三行的csv文件。列由制表符分隔,行由新行分隔。有些元素是空的。我必须找到所有行的空列。文件如下:

我的代码如下。问题是,它对最后一列不起作用,即,如果最后一列为空,或者行中最后一个制表符后的最后一列中没有值,它仍然被计为非空字符串。我检查了“eachElement”的长度,奇怪的是,第一行和第二行的长度显示为1,但第三行的长度显示为空字符串。看起来它在前两行(因此长度为1)的最后一列的最后一个制表符后计算新行,但逻辑上不应该,因为我使用了“for line in content”。因此,每行应该只包含该行,而不包含“\n”


末尾包括一个新行
\n
。在你的
for
循环中去掉它:

for line in content:
    line = line.rstrip('\n')
    rowIndex += 1
    colIndex = -1
    ...

我尝试过这个方法,效果很好。

你真的应该使用csv解析器,比如
csv.reader()
-为什么你认为它没有
'\n'
(提示:它确实包含
'\n'
)?注意:您可以对文件中的行执行
而不使用
readlines()
。如果这不是家庭作业,那么你可以使用它来解决这个问题。
for line in content:
    line = line.rstrip('\n')
    rowIndex += 1
    colIndex = -1
    ...