Python 巨蟒:“;拆分();“忽略”\";

Python 巨蟒:“;拆分();“忽略”\";,python,Python,我有一个文本文件myfile.txt。文件的第一行是foobar。我想把这行分成两个单词。这是我的密码: 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

我有一个文本文件
myfile.txt
。文件的第一行是
foobar
。我想把这行分成两个单词。这是我的密码:

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()。发生的情况是,
print
只是将其作为换行符打印出来

>>> print line.split(' ')[0] foo >>> print line.split(' ')[1] bar >>> 使用
repr()
查看它:

In [3]: word2 = 'bar\n'

In [4]: print word2
bar


In [5]: print repr(word2)
'bar\n'
为什么split()似乎从第二个单词中删除了\n,尽管我只要求根据空格字符进行拆分

事实上,事实并非如此。调用
split(“”)
不会删除
'\n'

>>> line = 'foo bar\n' >>> line 'foo bar\n' >>> line.split(' ') ['foo', 'bar\n'] >>> line.split(' ')[1] 'bar\n' >>>>
请注意,
bar
之后有一个额外的行,但在
foo
之后没有。为什么split()似乎会从第二个单词中删除\n。它实际上并没有消除它,很明显,你可以在列表中看到它。
print line
不会显示列表-我怀疑这是
print words
的输出。。。而
word2
仍将有尾随的
\n
。。。你可能只是忽略了一个事实,当你打印它时,后面会有一个空行。。。。请尝试打印报告(word2)
而不是询问者没有说调用
split(“”)
删除了
'\n'
。他问为什么要删除它(即打印单词与打印单词2)。@t事实上,他问的问题是:为什么split()似乎要删除第二个单词中的\n,即使我只要求根据空格字符进行拆分?你说你报告的内容不正确。然而,他报告说,这似乎已被消除。换句话说,他说的是印刷文字和文字2之间的明显差异。看起来你纠正了它。谢谢。@t你知道的。我知道。但是询问者没有。NPE和我对这个问题的解释都是一样的。我真的不认为我纠正了什么。也许我只是需要更清楚询问者的错误概念是什么。