2016-05-29 11 views
-4

に単語のリストを置くために、インポートREを使用して:私はPythonスクリプト私はPythonスクリプトの下に書かれているブラケット

-MacBook-Pro-2:FinalizedPythonScripts e0126914$ python OpenFileAndFormat.py 

    ['MA1', 'ETLP', '01', 'MA1', 'ETLP', '02', 'MA1', 'ETLP', 
    '03', 'MA1', 'ETLP', '04', 'MA1', 'ETLP', '05'] 

:私は、スクリプトを実行すると

import re 


mystr = """ 


MA1-ETLP-01 
MA1-ETLP-02 
MA1-ETLP-03 
MA1-ETLP-04 
MA1-ETLP-05 

""" 
wordList = re.sub("[^\w]"," ",mystr).split() 

print wordList 

それはと私に出力を与えています

['MA1-ETLP-01', 'MA1-ETLP-02', 'MA1-ETLP-03', 'MA1-ETLP-04', 'MA1-ETLP-05'] 

誰かが私のPythonスクリプトを修正するのを助けることができますので、2番目のoのように見えますutput?

+1

なぜ 're'を使っているのですか? – Eric

+0

_ "ブラケットに単語のリストを入れてください" _、あなたは "リストを作る"を意味しますか? – Eric

+0

mystrは実際にどこから来ていますか? –

答えて

3

以下は、トリックを行います:

mystr.split() 
6

あなたはそのための正規表現を必要としません。文字列をsplit()に送信してください。あなたが行にスペースを持つことができる場合は

>>> mystr = """ 
... 
... 
... MA1-ETLP-01 
... MA1-ETLP-02 
... MA1-ETLP-03 
... MA1-ETLP-04 
... MA1-ETLP-05 
... 
... """ 
>>> mystr.split() 
['MA1-ETLP-01', 'MA1-ETLP-02', 'MA1-ETLP-03', 'MA1-ETLP-04', 'MA1-ETLP-05'] 
1

あなたが望むだろう分割線代わりに空行分割のとフィルタリングする:それはあなたがから読んでいると思われるスクリプト名OpenFileAndFormatに基づいて

mystr = """ 


MA1-ETLP-01 
MA1-ETLP-02 
MA1-ETLP-03 
MA1-ETLP-04 
MA1-ETLP-05 

""" 

print([line for line in mystr.splitlines() if line]) 

あなたが何かを分割する必要がない場合は、改行を取り除き、空行をフィルタリングするリストに行単位で読み込むことができます:

with open("your_file") as f: 
    lines = [line for line in map(str.strip, f) if line] 
+0

あなたのコメントのおかげで – aznjonn

関連する問題