2015-08-26 37 views
-1

我希望能夠寫入文件的方式多行文本,該文本被寫入,例如文字相當於語法文件將是:的Python逐字字符串在C#

Hello world 
Hello1 world 

而且不會像:

Hello world 
[many spaces] Hello1 world 

我也想嘗試不使用\r\n
我知道在C#中,我們可以寫@字符串之前,所有做像我想要

+0

不是我非常在意它,但我想知道爲什麼人們在我的問題中遞減到-2 – JavaSa

回答

3

我相信你要找的是這樣的:

file_handle.write("""Hello {0} 
Hello1 {0}""".format("world")) 

可以使用textwrap.dedent()功能剝離共同前導空格:

from textwrap import dedent 

s = dedent("""\ 
      Hello {0} 
      Hello1 {0}""") 
file_handle.write(s.format("world")) 

我建議不要這樣做,但這些。我要麼將它分成兩個調用(每個調用仍然有一個'\n'),或者只在一個字符串中使用'\n'

+0

出於好奇,爲什麼不推薦使用'dedent'解決方案? – JavaSa

+0

@JavaSa,國際海事組織,它使醜陋的代碼,而不僅僅是在字符串中包括一個換行符。對於短字符串尤其如此;對於一條大型的多線字符串我會有不同的感覺。 – Cyphase

+0

好的我的例子很簡短,但我的實際用法是多行的;) – JavaSa

2

多行字符串(三重引號)應該在這裏工作。

with open("file.txt", "w") as f: 
    f.write("""Hello {0} 
Hello1 {0}""".format("world")) 

我也同意@Cyphase,如果沒有重要的理由讓你避免\n,我寧願使用:

with open("file.txt", "w") as f: 
    f.write("Hello {0}\nHello1 {0}".format("world"))