python readline错误地判断文件结束

时间:2016-11-02 02:47:54

标签: python readline

我有一个文本文件,使用python的readline()读入mysql,逐行读取。

我遇到的问题是文本文件有100多行,但第75行是空白行,0d0a,readline()认为文件到达终点,因此停在那里。

我该如何预防?

非常感谢。

P.S。以下是我的代码和示例文件中的部分:

for line in ipv4file:
if line:
    lineSplit = line.split( )

    ip_start = lineSplit[0]

    # define a tuple data to hold the parameters, remove all the leading and trailing blank spaces
    data = (lineSplit[0].lstrip().rstrip(), lineSplit[1].lstrip().rstrip(), lineSplit[2].lstrip().rstrip())

    sqltemplate = """
        insert into ipv4(ip_start, ip_end, ip_owner) values (%s, %s, %s)
    """

enter image description here

HEX格式的文件: enter image description here

请注意,在1.6.0.0之前有0D 0A 0D 0A

感谢。

2 个答案:

答案 0 :(得分:1)

您要检查空行:

if line:

但它不会起作用,因为换行符仍然是line的一部分。您可以稍微修改测试以使其正常工作:

if line.strip():

答案 1 :(得分:0)

readline()实际上将行读入字符串元组,这意味着0D 0A将被读入(" \ n")的元组,所以我需要做的就是检查字符串,如果前两个字符是" \ n",那么这意味着这一行是一个空行,我需要做的就是跳过它。

感谢。