使用python写入特定格式的文件

时间:2017-01-13 02:04:36

标签: python

我有以下列表,我需要将列表的内容写入由制表符分隔的文件。我尝试打印列表,但我看到方括号也出现了。有没有更好的方法来写这个?

list = ['a','b','c']
with open('file','wb') as outfile:
     outfile.write(str(list))

我得到如下输出。

['a', 'b', 'c']

但是我需要输出如下,没有方括号,并且还在列表的每个值之间插入制表符空格。

'a'\t'b'\t'c'

2 个答案:

答案 0 :(得分:0)

您想要的方法是str.join()

x = list("abc")  # it's bad practice to shadow the list builtin
print(x)  # not what you want
print("\t".join(x))  # almost there - just missing the single quotes
print("\t".join("'{}'".format(c) for c in x))  # ta-da!

答案 1 :(得分:0)

最好的方法取决于您拥有的数据类型以及以后可能需要阅读的内容。 CSV模块处理诸如在列中转义分隔符(假设列数据本身具有选项卡),行结尾和引用列之类的事情。这可能最符合您的需求

import csv

data = ['a', 'b', 'c']
with open('file', 'w', newline='') as fp:
    writer = csv.writer(fp, dialect='excel-tab', quotechar="'",
        quoting=csv.QUOTE_ALL)
    writer.writerow(data)


# show result...
print(repr(open('file').read()))