gpt4 book ai didi

python - Python 中的字符串和行格式化

转载 作者:太空宇宙 更新时间:2023-11-04 01:20:46 24 4
gpt4 key购买 nike

我想让以下命令在 python 中格式化,以符合每行 80 个字符的策略:

cmd = """elastic-mapreduce --create --alive \
--instance-type m1.xlarge\
--num-instances 5 \
--supported-product mapr \
--name m7 \
--args "--edition,m7"
"""

虽然在代码中它看起来像多行,但是当 cmd 被执行时我希望它看起来像

elastic-mapreduce --create --alive --instance-type m1.xlarge --num-instances 5 supported-product mapr name m7 args "--edition,m7"

这是我在这里遇到的类似问题:

raise ValueError, "%s hadoop %s version is not supported" % (self.distribution, version)

那一行太长了,我想做这样的事情:

raise ValueError,\ 
"%s hadoop %s version is not supported" % (self.distribution, version)

最佳答案

对于您的第一个代码,您可以编写一个方法来“线性化”您的空白

 import re
def linearize_whitespace_regex(text):
formatted = text.strip().replace('\n',' ').replace('\r',' ').replace('\t',' ')
formatted = re.sub(r'\s{2,}',' ',formatted)
return formatted

我使用了正则表达式库,这当然可以在没有导入的情况下使用您自己的解析来完成:

def linearize_whitespace_manual(text):
formatted = text.strip().replace('\n',' ').replace('\r',' ').replace('\t',' ')
ws_buf = ''
format_buf = ''
for i in formatted:
if i == ' ':
if len(ws_buf) < 1:
ws_buf += i
else:
format_buf += ws_buf + i
ws_buf = ''
return format_buf

和输出:

>>> cmd = """elastic-mapreduce --create --alive \
... --instance-type m1.xlarge\
... --num-instances 5 \
... --supported-product mapr \
... --name m7 \
... --args "--edition,m7"
... """
>>> linearize_whitespace_regex(cmd)
'elastic-mapreduce --create --alive --instance-type m1.xlarge--num-instances 5 --supported-product mapr --name m7 --args "--edition,m7"'
>>> linearize_whitespace_manual(cmd)
'elastic-mapreduce --create --alive --instance-type m1.xlarge--num-instances 5 --supported-product mapr --name m7 --args "--edition,m7"'

至于你的第二个问题,异常也可以用这种方式来完成:

raise Exception("My error message")

所以你可以这样写:

raise ValueError("%s hadoop %s version is not supported" % (self.distribution, version))

并通过以下任一方式满足您的线路要求:

raise ValueError("%s hadoop %s version is not supported"
% (self.distribution, version))


raise ValueError(
"%s hadoop %s version is not supported" % (self.distribution, version))


raise ValueError(
"%s hadoop %s version is not supported"
% (self.distribution, version)
)

关于python - Python 中的字符串和行格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21411660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com