【发布时间】:2016-06-12 17:25:09
【问题描述】:
我也遇到了一个问题,我也找不到干净的解决方案。我正在读取 csv 文件(每行约 4000 行,最多约 2000 个文件),其中一些在文件中随机包含一个 NULL 字节(它们最初不应该存在)。他们在自己的一排,我正试图找到一种方法来跳过他们。我觉得最干净的方法是将 for 循环放在 try except 中,当它遇到 NULL 字节时,它将跳到 for 循环的下一次迭代。我的问题是如果 for 循环失败,continue 会移动到循环的下一次迭代吗?我假设它不会,但我不知道如何轻松测试它,我想不出另一种方法来做到这一点。
这里有一些伪代码
reader = csv.reader(open('file'))
while 1:
try:
for row in reader:
#do stuff with row
break
except:
continue
【问题讨论】:
-
也许你可以用一个小数据集进行测试,看看行为是否符合你的预期?也许为此设置一个单元测试以查看您的方法在不同输入下的行为?
-
@idjaw 会继续 for 循环还是 while 循环?
-
如果您想从文件中删除空字节,为什么要使用 csv?为什么不直接
infile = open("input.csv"); outfile = open("output.csv", "w"); outfile.write(infile.read().replace("\0", ""))? -
@Kevin 这不是我想要做的,但我想我可以修改它来工作。我会告诉你它是否有效
-
为什么要将for循环放在try except中,而不是将try except放在for循环中?
标签: python csv null try-except