2016-12-14 1 views
0

Мне удалось распечатать файл с помощью python. У меня есть словарь с этой формой:Python: как иметь символ « n» без наличия другой строки в файле

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

При печати на файл у меня нет ни одной строки, но у меня есть один и тот же номер, что и числа «\ п».

Как я могу иметь файл этой формы:

name1 item1 
     item2 
     item3 
name2 item1 
     item2 
name3 item1 
     item2 

...

Спасибо за ответы

Edit с этим кодом у меня есть это:

name1 item1 
item2 
item3 
name2 item1 
item2 
name3 item1 
item2 

Intead Я хочу того же, что и у меня, когда в excel я нажимаю ALT + ENTER

Edit2:

Если у меня есть файл CSV, я хочу это:

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

, это хорошее редактирование, чтобы показать, что вы хотите. Когда вы добавляете то, что спрашивает @sudobangbang, добавьте теперь, что он делает. –

ответ

0

Предполагая словарем отображения строк в списках.

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 были отформатированы до ширины пять, выровнены по левому краю и разделены пробелом». Я предлагаю вам посмотреть в Интернете на примерах 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

Это не то, что я хочу. Это не работает в файле –

Смежные вопросы