我有一个文本文件myfile.txt
。该文件的第一行是foo bar
。我想将这一行分成两个相应的单词。这是我的代码:
with open('myfile.txt', 'r') as f:
line = f.readline()
words = line.split(' ')
word1 = words[0]
word2 = words[1]
print words
print word1
print word2
输出是:
['foo', 'bar\n']
foo
bar
我的问题是,为什么split()
似乎从第二个单词中删除\n
,即使我只是要求根据空白字符进行拆分?
答案 0 :(得分:5)
split()
并未消除\n
。会发生什么是print
只是将其打印为换行符。
使用repr()
查看:
In [3]: word2 = 'bar\n'
In [4]: print word2
bar
In [5]: print repr(word2)
'bar\n'
答案 1 :(得分:2)
为什么split()似乎从第二个单词中消除\ n,即使我只是要求根据空白字符进行拆分?
事实上,这不是正在发生的事情。致split(' ')
的电话不会删除'\n'
。
>>> line = 'foo bar\n' >>> line 'foo bar\n' >>> line.split(' ') ['foo', 'bar\n'] >>> line.split(' ')[1] 'bar\n' >>>>
当您打印'bar\n'
时,\n
被解释为换行符。
>>> print line.split(' ')[0] foo >>> print line.split(' ')[1] bar >>>
请注意bar
之后还有一行,但foo
之后没有。