2012-03-07 18 views
1

私の結果データは、それぞれがそれらにリストを持っているタプルのリストである:書き込みリストのテキストファイルへ

[(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ['I', 'J', 'K', 'L', 'M', 'N']), 
... 
(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ['I', 'J', 'K', 'L', 'M', 'N'])] 

すべてのネストと引用符を除去し、書くための最良の方法は何A:Nはタブで区切られたファイルですか?

答えて

4

引用符は文字列の一部ではなく、文字列を示します。それらを削除することはできません。

csv moduleこのtaksが非常に簡単になり:

import csv, itertools 
with open('file.csv', 'wb') as f: 
    writer = csv.writer(f, delimiter="\t") 
    writer.writerows(list(itertools.chain(*t)) for t in results) 

これは、各行がタプルに対応し、列がタブで区切られ、両方のリストの文字を含むファイルになります。

+0

うーん、それはしかし、走る空白のファイルを出力します。私は他の何かが足りないのですか? – user1249464

+0

コードを更新しました。問題は、ファイルが 'csv.writer'によって閉じられていないことです。リストも適切に生成されていないようです...今はうまくいくはずです。 –

+0

完全に動作します、ありがとう – user1249464

-1

再帰的にこの問題を解決する方法です。

LET目標は、あなたのリストで[(A、B ..])、([A、B])]

def dump(target): 
    for obj in target: 
    if isinstance(obj,tuple) or isinstance(obj, list): 
     dump(obj) 
    else: 
     print(obj), 

dump(target) 
print() 
関連する問題