假設doc.txt
包含爲什麼不.rstrip(' n')工作?
a
b
c
d
和我的代碼是
f = open('doc.txt')
doc = f.read()
doc = doc.rstrip('\n')
print doc
爲什麼我會得到相同的價值觀?
假設doc.txt
包含爲什麼不.rstrip(' n')工作?
a
b
c
d
和我的代碼是
f = open('doc.txt')
doc = f.read()
doc = doc.rstrip('\n')
print doc
爲什麼我會得到相同的價值觀?
str.rstrip()
刪除尾隨換行符,不是所有的換行符都在中間。畢竟,你有一個長字符串。
使用str.splitlines()
將您的文檔分割成行沒有換行符;你可以歸隊,如果你想:
doclines = doc.splitlines()
doc_rejoined = ''.join(doclines)
但現在doc_rejoined
將有沒有分隔符一起運行的所有線路。
rstrip
去除整個字符串中的尾隨空格。如果您希望它能夠在單行上運行,則需要先使用doc.split('\n')
之類的字符串將字符串分割成多行。
因爲你閱讀整個文檔轉換成一個字符串,它看起來像:
'a\nb\nc\nd\n'
當您在該字符串做rstrip('\n')
,只有最右邊的\n
將被刪除,留下所有其它不變,因此字符串看起來像:
'a\nb\nc\nd'
解決方案是將文件拆分成行,然後右剝離每一行。或者只是將所有新行字符全部替換爲:s.replace('\n', '')
,這會給你'abcd'
。
試試這個:
with open('doc.txt') as f:
for line in f:
print line,
說明:
with
,這需要在年底關閉該文件的護理for line in f
rstrip()
,因爲我們正在閱讀並一次打印一行考慮使用replace並將'\ n'的每個實例替換爲''。這將消除輸入文本中的所有新行字符。
或者只是'替換('\ n','')'。線結束不會發生在除了行尾之外的任何地方。 – user2357112
@ user2357112最佳答案。 – Deneb