2016-12-14 7 views
0

私はPythonでファイルに印刷できました。 私はこのフォームで辞書を持っている:私は、ファイルに印刷する場合Python:ファイルに別の行を持たずに文字 " n"を持つ方法

dict['name']=x 
dict['list']="\n".join(mylist) 

私は、単一の行を持っていないが、私は「\ nを」の数と同じ数を持っています。私は、この形式のファイルを持つことができますどのように

name1 item1 
     item2 
     item3 
name2 item1 
     item2 
name3 item1 
     item2 

を...私はこれを持っているコードと答え

編集用

ありがとう:

name1 item1 
item2 
item3 
name2 item1 
item2 
name3 item1 
item2 

Intead私はエクセルで私が持っているのと同じものを私はAlt + Enterを押してください

EDIT2は:リストへの辞書マッピング文字列を想定し

CELL A:1 with name1 
CELL B:1 with item1\nitem2\nitem3 
CELL A:2 with name2 
CELL B:2 with item\nitem2 
... 
+1

書き込み文をファイルに表示できますか? – sudobangbang

+0

dict ['list'] = "" .join(mylist)。またはあなたの質問タイトルが示唆するように/ nが必要ですか? –

+0

これは、あなたが望むものを表示するための素敵な編集です。 @スドバンバンが尋ねるものを追加するときは、それが今何をしているのかを加えてください。 –

答えて

0

:私は、CSVファイルがある場合は

私はこれ欲しいです。

d = {'a': [1,2,3], 'b': [1,2,3]} 

for k in d: 
    name = k 
    for item in d[k]: 
     print('{:<5} {:<5}'.format(name, item)) 
     name = '' 

出力:

a  1 
     2 
     3 
b  1 
     2 
     3 

これでファイルを印刷するには、我々はファイルを開き、print

with open('filename.txt', 'w+') as f: 
    for k in d: 
     name = k 
     for item in d[k]: 
      print('{:<5} {:<5}'.format(name, item), file=f) 
      name = '' 

'{:<5} {:<5}'は、基本的な使用であるを使用して、それを印刷しますformat specification mini-languageの実際に言っているのは、「formatの2つの引数を、幅が5、左揃えでスペースで区切ってフォーマットします。私はformatの例題をオンラインで見ることをお勧めします。使用方法が分かっていれば非常に強力です。

EDIT:ああ、私はあなたがcsvファイルで作業しているのを見ていませんでした。ファイルが改行が新しい行の先頭でないことをファイルが認識するように引用符文字を使用する必要があります

import csv 

d = {'a': [1,2,3], 'b': [1,2,3]} 

with open('filename.csv', 'w+', newline='') as f: 
    w = csv.writer(f, quotechar='"') 
    for k in d: 
     name = k 
     item = '\n'.join(i for i in d[k]) 
     w.writerow([str(k), item]) 
+0

今私は試みます。説明して頂けますか? –

+0

@all_key_the私は説明して嬉しいです。どの部分を理解していないのですか? –

+0

これは私が望むものではありません。これはファイル内では動作しません。 –

関連する問題