我想让以下命令在 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"'
至于你的第二个问题,提出异常(exception)也可以通过这种方式完成:
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/