让我们说doc.txt包含
a
b
c
d
Run Code Online (Sandbox Code Playgroud)
我的代码是
f = open('doc.txt')
doc = f.read()
doc = doc.rstrip('\n')
print doc
Run Code Online (Sandbox Code Playgroud)
为什么我得到相同的价值?
Mar*_*ers 15
str.rstrip()删除尾随换行符,而不是中间的所有换行符.毕竟,你有一个长串.
使用str.splitlines()您的文件分割成线不带换行 ; 你可以重新加入它,如果你想:
doclines = doc.splitlines()
doc_rejoined = ''.join(doclines)
Run Code Online (Sandbox Code Playgroud)
但是现在doc_rejoined所有的线都会在没有分隔符的情况下一起运行.
因为您将整个文档读入一个如下所示的字符串:
'a\nb\nc\nd\n'
Run Code Online (Sandbox Code Playgroud)
当你rstrip('\n')对该字符串执行 a时,只有最右边的\n会被删除,其他的都保持不变,所以字符串看起来像:
'a\nb\nc\nd'
Run Code Online (Sandbox Code Playgroud)
解决方案是将文件分成几行,然后右删除每一行。或者只是用空替换所有换行符:s.replace('\n', ''),这会给你'abcd'.
| 归档时间: |
|
| 查看次数: |
21038 次 |
| 最近记录: |