Python:将元组列表写入文件

34 投票
8 回答
91676 浏览
提问于 2025-04-16 04:44

我该如何将下面这个列表:

[(8, 'rfa'), (8, 'acc-raid'), (7, 'rapidbase'), (7, 'rcts'), (7, 'tve-announce'), (5, 'mysql-im'), (5, 'telnetcpcd'), (5, 'etftp'), (5, 'http-alt')]

写入一个文本文件中,要求是有两列 (8 rfa) 和很多行,这样我最终得到的格式大概是这样的:

8 rfa
8 acc-raid
7 rapidbase
7 rcts
7 tve-announce
5 mysql-im
5 telnetcpcd 

8 个回答

5

在编程中,有时候我们需要处理一些数据,这些数据可能来自不同的地方,比如用户输入、文件或者网络请求。为了让程序能够理解这些数据,我们需要将它们转换成程序能处理的格式。

比如说,如果你有一个数字的字符串“123”,程序并不会把它当成数字来计算,而是把它当成普通的文本。为了让程序能够进行数学运算,我们需要把这个字符串转换成数字,这个过程就叫做“类型转换”。

类型转换有两种方式:一种是“隐式转换”,也就是程序自动帮你转换;另一种是“显式转换”,你需要自己告诉程序怎么转换。

在编程中,理解这些数据的转换非常重要,因为它能帮助你避免错误,让你的程序运行得更顺利。

open('filename', 'w').write('\n'.join('%s %s' % x for x in mylist))
21
import csv
with open(<path-to-file>, "w") as the_file:
    csv.register_dialect("custom", delimiter=" ", skipinitialspace=True)
    writer = csv.writer(the_file, dialect="custom")
    for tup in tuples:
        writer.write(tup)

csv模块非常强大!

66
with open('daemons.txt', 'w') as fp:
    fp.write('\n'.join('%s %s' % x for x in mylist))

如果你想使用 str.format() 方法,可以把第二行替换成:

    fp.write('\n'.join('{} {}'.format(x[0],x[1]) for x in mylist))

撰写回答