Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C中逐字字符串文字的Python等效语法_Python_String - Fatal编程技术网

C中逐字字符串文字的Python等效语法

C中逐字字符串文字的Python等效语法,python,string,Python,String,我希望能够以文本按原样写入的方式写入多行文本文件,例如: file.write("Hello {0} Hello1 {0}".format("world")) 因此,结果文件将是: Hello world Hello1 world 而且看起来不像: Hello world [many spaces] Hello1 world 我还想尝试不使用\r\n 我知道在C语言中,我们可以在字符串之前写@,一切都按照我所希望的那样完成多行字符串三重引号应该在这里起作用 with open("f

我希望能够以文本按原样写入的方式写入多行文本文件,例如:

file.write("Hello {0} Hello1 {0}".format("world"))
因此,结果文件将是:

Hello world  
Hello1 world
而且看起来不像:

Hello world  
[many spaces] Hello1 world
我还想尝试不使用\r\n
我知道在C语言中,我们可以在字符串之前写@,一切都按照我所希望的那样完成

多行字符串三重引号应该在这里起作用

with open("file.txt", "w") as f:
    f.write("""Hello {0}
Hello1 {0}""".format("world"))
我也同意@Cyphase,如果没有重要的原因让您避免,我宁愿使用:

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

我相信你要找的是:

file_handle.write("""Hello {0}
Hello1 {0}""".format("world"))
您可以使用该函数去除常见的前导空格:

from textwrap import dedent

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

不过我建议不要做这两件事。我要么把它分成两个调用,每个调用中都有一个“\n”,要么在一个字符串中使用“\n”。

我并不太关心它,但我想知道为什么在我的问题中,人们出于好奇而减少到-2,为什么不推荐使用dedent解决方案?@JavaSa,IMO,它会产生难看的代码,而不是仅仅在字符串中包含一个换行符。对于短字符串尤其如此;对于一个大的多行字符串,我会有不同的感觉@JavaSa,没有错误的方法;这是风格的问题。