2017-12-09 13 views
0

1行に1つの名前でファイルを書き込む必要があります。私が使用してリストを作った:Pythonで作成されたファイルからコンマを削除する

names = [('a', '1\n'), ('b', '2\n'), ('c', '3\n'), ('d', '4\n')] 

names = list(itertools.chain(*names)) 

これが結果です:

['a', '1\n', 'b', '2\n', 'c', '3\n', 'd', '4\n'] 

この後、私がやった:

separated_names = ', '.join(names) 

をリストから文字列を削除し、その結果次のとおりです。

'a', '1' 

, 'b', '2' 

, 'c', '3' 

, 'd', '4' 

問題はカンマです各行が開始されます。私が必要とする出力は次の形式です:

'a', '1' 

'b', '2' 

'c', '3' 

'd', '4' 

これは簡単な方法ですか?

答えて

0

試してみてください。一方

>>> names = [('a', '1\n'), ('b', '2\n'), ('c', '3\n'), ('d', '4\n')] 
>>> print(''.join('%s, %s' % line for line in names)) 
a, 1 
b, 2 
c, 3 
d, 4 

あなたが本当に出力に表示される単一引用符たい場合は、:

>>> print('\n'.join("'%s', '%s'" % (a, b.strip()) for a, b in names)) 
'a', '1' 
'b', '2' 
'c', '3' 
'd', '4' 
+0

は、あなたの助けをありがとう、今では動作します:) –

0

をあなたのデータ構造は、1つの事と別の間のマッピングです、したがって、辞書を使用する必要があります。

names = {'a': '1', 'b': '2', 'c': '3', 'd': '4'} 

次に、辞書の項目をwrに繰り返しますファイルへのITE:

with open('my_file.txt', 'w') as f: 
    for key, value in names.items(): 
     f.write('{}, {}'.format(key, value)) 
1
names = [('a', '1\n'), ('b', '2\n'), ('c', '3\n'), ('d', '4\n')] 

archive_out = open("output.txt", 'w') 

for line in names: 
    archive_out.write(str(", ".join(line))) 

archive_out.close() 
関連する問題