在python中将数据集导出到文本文件中

2024-10-16 17:24:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个例子:

mylist = ['chr10 30930000 32110000 ARHGAP12,PFKP,ZEB1,ZNF438 4', 'chr15 76430000 77240000 ETFA,ISL2, 4']

我正在尝试将它导出到text file。事实上,每个string would be one lineevery line would have 5 columns。每个字符串中的每个space separated part都将是one column。所以,在column 4中有一些comma separated characters,它们将是in the same column。文件应该是tab separated。你知道吗

例如,预期输出如下所示:

chr10   30930000    32110000    ARHGAP12,PFKP,ZEB1,ZNF438   4
chr15   76430000    77240000    ETFA,ISL2   4

我在python中使用以下代码:

with open('outfile.txt', "w") as f:
    for item in mylist:
        f.write("%s\n" % item+ '\t')

但它并没有完全返回我想要的。你知道怎么修吗?你知道吗


Tags: inlinecolumnonewouldseparatedmylistchr10
3条回答

这应该相当简单如下-

aa=['chr10 30930000 32110000 ARHGAP12,PFKP,ZEB1,ZNF438 4', 'chr15 76430000 77240000 ETFA,ISL2, 4']
with open("aa.txt","w") as wr:
    for item in aa:
        wr.write("\t".join(item.split(" ")) + "\n")

每个item都是一个字符串,例如'chr10 30930000 32110000 ARHGAP12,PFKP,ZEB1,ZNF438 4'。 我想您应该将每列值之间的空格转换为制表符。为了实现这一点,您应该添加另一个嵌套循环。像这样:

with open('outfile.txt', "w") as f:
    for line in mylist:
        for item in line.split(' '):
            f.write(item + '\t')
        f.write("\n")

而不是:

f.write("%s\n" % item+ '\t')

按空格拆分后按制表符联接:

f.write('\t'.join(item.split()) + '\n)

相关问题 更多 >