是否有特定的方法在新行的开头输入字符?

时间:2015-05-09 13:57:47

标签: python string formatting

当前我正在尝试实现输入“>”的方法在字符串中每个单独行的开头。

一个例子是:

字符串:

"Hello how are you!

 Python is cool!"

现在这是一个大字符串,换行符。但有没有一个函数来确定换行的时间和地点?正如我上面所说,我想加入一个“>”在每个新行的开头。像这样:

字符串:

">Hello how are you!

 >Python is cool!"

注意:字符串不是永久设置的,所以我必须解决这个问题。

希望这是有道理的,谢谢你的帮助!

3 个答案:

答案 0 :(得分:2)

只需分割线条和连续点:

lines = """Hello how are you!

 Python is cool!"""

for line in lines.splitlines():
    if line:
       print(">" + line)
    else:
        print(line)


>Hello how are you!

> Python is cool!

要获取新字符串并保持换行设置keepends = True:

new_s = "".join([">{}".format(line) if line.strip() else line
             for line in lines.splitlines(True)])
print(new_s)
>Hello how are you!

> Python is cool!

<强> str.splitlines([keepends])

  

返回字符串中的行列表,在行边界处断开。此方法使用通用换行方法来分割线。除非给出了keepends并且为true,否则换行符不会包括在结果列表中。

答案 1 :(得分:1)

使用正则表达式查找非换行符的组,并在以下位置插入>字符:

new_string = re.sub(r'[^\n]+', '>\g<0>', old_string) # be sure to import re

答案 2 :(得分:1)

除了您的要求外,这应该与print完全相同:

def newprint(*args, **kwargs): to_print = " ".join([str(a) for a in args]) print(">", "\n> ".join(to_print.splitlines()), **kwargs)