我想从文本文件中读取一个字符串,并使用.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
>>>
是否与“打开/读取”功能有关?
答案 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>