2014-01-28 26 views
2

格式化我要讓下面的命令在蟒蛇被格式化,其他符合每行政策的80個字符:字符串和線路在Python

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) 
+0

而......問題是什麼?如果是關於編碼風格,你應該在codereview.SE上提問 – Bakuriu

回答

3

至於代碼的第一個位,你可以寫爲「線性」的方法您的空白

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"' 

至於你的S的Econd問題引發異常也可以以這種方式完成的:

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) 
) 
0

添加\n應插入新行。