我有以下列表,我需要将列表的内容写入由制表符分隔的文件。我尝试打印列表,但我看到方括号也出现了。有没有更好的方法来写这个?
list = ['a','b','c']
with open('file','wb') as outfile:
outfile.write(str(list))
我得到如下输出。
['a', 'b', 'c']
但是我需要输出如下,没有方括号,并且还在列表的每个值之间插入制表符空格。
'a'\t'b'\t'c'
答案 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()))