Python:将元组列表写入文件
我该如何将下面这个列表:
[(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))