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和我对这个问题的解释都是一样的。我真的不认为我纠正了什么。也许我只是需要更清楚询问者的错误概念是什么。