Python:如何在文件中没有另一行的情况下使用字符“\ n”

时间:2016-12-14 12:32:20

标签: python dictionary file-io

我能用python打印文件。 我有一个这种形式的字典:

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我希望我在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 个答案:

答案 0 :(得分: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的两个参数格式化为宽度为5,左对齐并用空格分隔”。我建议你在网上浏览format的例子,当你知道如何使用它时它会非常强大。

编辑:哦,我没有看到您使用的是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])