Python .strip()不会删除空行

时间:2014-09-16 17:54:34

标签: python-3.x

我想从文本文件中读取一个字符串,并使用.strip()删除文件末尾的空行或空行,但它似乎不起作用。但是,在交互模式内部进行测试可以正常工作。

名为nameList的文本文件示例:

Bob 555-333-4444
Sam 234-343-1234
<blank line>

使用交互式模式输出:

>>> str = 'Bob 555-333-4444\nSam 234-343-1234\n'
>>> print (str)
Bob 555-333-4444
Sam 234-343-1234

>>> newStr = str.strip ()
>>> print (newStr)
Bob 555-333-4444
Sam 234-343-1234
>>> 

使用open函数读取文本文件:

list = []

def readStr ():

        f = open ('nameList.txt', 'r')

        for line in f:
                row = line.strip ()
                print (row)

        f.close ()

readStr()函数的输出:

>>> readStr ()
Bob 555-333-4444
Sam 234-343-1234

>>> 

是否与“打开/读取”功能有关?

1 个答案:

答案 0 :(得分:2)

str.strip()仅从字符串末尾删除空格。与

'Bob 555-333-4444\nSam 234-343-1234\n'.strip()

问题不在于您是以交互方式使用它,而是在单个字符串中有多行(由\n字符分隔的文本)。结果是

'Bob 555-333-4444\nSam 234-343-1234'
剥离最终换行符后

在您的另一个示例中,您在一系列由单行组成的单个字符串上调用strip,即唯一的换行符位于字符串的末尾。然后打印结果。即使'\n'.strip () == '',结果仍然是一个字符串,只是一个空字符串,当由print(row)打印时会产生一个空行(空字符串加上print提供的换行符)。 / p>