2016-05-13 4 views
0

私は、関数の出力である文のリストを持っています。彼らは次のようになります:関数によって出力された文字列のリストをファイルに書き込む

["['A', 'little', 'girl', 'spanks', 'her', 'blonde', 'hair', 'Of', 'a', 'twitching', 'nose', 'A', 'cigarette', 'butt.', '$']", 
"['From', 'another', 'town.', '$', 'The', 'arriving', 'train', 'All', 'my', 'sweaty', 'face', 'In', 'a', 'pine', 'tree.']", 
"['In', 'a', 'heavy', 'fall', 'of', 'flakes', 'And', 'timing', 'its', 'wing,', '\\xe2\\x80\\x93', 'A', 'leaf', 'chases', 'wind']",.... 

"['As', 'green', 'melon', 'splits', 'open', 'And', 'cools', 'red', 'tomatoes!', '$', 'In', 'a', 'breath', 'of', 'an']"] 

文の中の言葉を許してください。彼らはただの実験です。私はこれらを単純な文章としてファイルに書きたいと思っています。

私はこの試みた:

def writeFile(sentences): 
    with open("result.txt", "w") as fp: 
     for item in sentences: 
      fp.write("%s\n" % item) 

をしかし、私の出力は次のようになります。

['A', 'little', 'girl', 'spanks', 'her', 'blonde', 'hair', 'Of', 'a', 'twitching', 'nose', 'A', 'cigarette', 'butt.', '$'] 
['From', 'another', 'town.', '$', 'The', 'arriving', 'train', 'All', 'my', 'sweaty', 'face', 'In', 'a', 'pine', 'tree.'] 

私は、Python 2でコーディングしています誰かが助けることができますか?

+2

私はあなたが望むものは、fp:fp.write( '' .join(文章中の単語)) 'としてオープン(....)であると思います。しかし、引用符で囲まれた文字列の中に大括弧を入れることを意図しているかどうかわからないので、私は確信できません。 – ZWiki

+5

なぜあなたのリストを文字列化しましたか?それはあなたが望むことをすることをはるかに困難にするでしょう。この出力を生成している関数を修正する必要があります。これはここには示していません。 –

+1

@ZWiki - '文章中の言葉を語る必要はありません。' 'join()'はあなたのための反復、 '' '.join(sentences) '(これはOP以外のものです) – dwanderson

答えて

0

リストの項目は、の形式である場合:

def writeFile(sentences): 
    with open("result.txt", "w") as fp: 
     for item in sentences: 
      fp.write("{0}\n".format(" ".join(eval(item)))) 

"['word0', 'word1', ...., 'wordn']" 

その後、としてそれが文を作るために言葉のlistに変換するevalを使用して、join

アイテムが既に単語のリストである場合は、上記のコードにevalが必要ありません。

リスト-理解と機能的であることを愛していればところで、あなたはこれを行うことができます:

def writeFile(sentences): 
    with open("result.txt", "w") as fp: 
     fp.write("\n".join(["".join(eval(item)) for item in sentences])) 

をしかし文章はそれとして、それにあまりにも多くのアイテムを持っている場合、それは、非常に効率的ではないかもしれません巨大なメモリを使用することになります。

関連する問題