[英]Python io.StringIO adding extra newline at the end
當我調用它的getvalue
方法時,Python的io.StringIO
似乎在io.StringIO
添加了一個額外的換行符。
對於以下代碼:
import io
s = io.StringIO()
s.write("1\n2\n3\n4\n5\n")
res = s.getvalue()
s.close()
print(res)
我得到的是這個,最后有一個額外的換行符:
1
2
3
4
5
我用十六進制編輯器檢查了輸出,我確定還有一個額外的換行符。
該文件說:
newline參數的工作方式與TextIOWrapper類似。 默認情況下,只考慮\\ n個字符作為行的結尾, 不進行換行 。 如果newline設置為None,則在所有平台上將換行符寫為\\ n,但在讀取時仍會執行通用換行解碼。
我不記得write
方法每次調用附加換行符。
那么為什么要添加換行符呢? 我正在寫一個腳本,所以我想確保它的行為是一致的。
StringIO不是這樣做的,它是print
。
print
打印所有參數,由sep
分隔(默認為空格),以end
,默認為換行符。 你可以通過這樣做來抑制它:
print(res, end="")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.