以文本fi行的形式编写python列表

2024-04-27 03:26:18 发布

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

我有一个python列表,如下所示:

data = [1,2,3,4,5]

我想把它写成文本文件如下:

1,2,3,4,5 ##as comma delineated.

我试着:

with open ('data.txt', 'w') as fo:
   for d in data:
     fo.write(str(d) + '\n')

但它写的数据如下:

1
2
3
4
5

伙计们,你们会怎么做?

编辑:

我还将从for循环中获得其他列表,因此所有一个列表(即1、2、3、4、5)必须在一行中进行调整。另外,我需要更快的性能。


Tags: 数据intxt列表fordataaswith
3条回答

您可以使用join方法

with open ('data.txt', 'w') as fo:
     fo.write(','.join(str(i) for i in data))

最简单的方法是将列表转换为联接字符串,然后写入:

str_data = ','.join(str(i) for i in data)
with open('data.txt', 'w') as fo:
    fo.write(str_data)

如果列表太长,无法将其全部转换为字符串:

with open('data.txt', 'w') as fo:
    for idx, item in enumerate(data):
        if idx:  # don't need a comma before the list
            fo.write(',')
        fo.write(item)

最新消息:尽管如此,ausêu lacy关于CSV的建议似乎是最好的。

看起来您需要一个CSV(逗号分隔值)文件作为输出。您可以使用CSVpython模块。

例如:

import csv

data = [1,2,3,4,5]

with open('test.csv', 'w') as csvfile:
    writer = csv.writer(csvfile, delimiter=",")
    writer.writerow(data)

相关问题 更多 >