Python:将元组列表写入文件

Adi*_*dia 26 python

如何编写以下列表:

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

到一个包含两列(8 rfa)和多行的文本文件,所以我有这样的东西:

8 rfa
8 acc-raid
7 rapidbase
7 rcts
7 tve-announce
5 mysql-im
5 telnetcpcd 
Run Code Online (Sandbox Code Playgroud)

提前致谢

Ign*_*ams 46

with open('daemons.txt', 'w') as fp:
    fp.write('\n'.join('%s %s' % x for x in mylist))
Run Code Online (Sandbox Code Playgroud)

如果要使用str.format(),请将第二行替换为:

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

  • `str.format`是格式化字符串的新习惯用法:http://www.python.org/dev/peps/pep-3101/.虽然我确信`%`会持续许多月亮...... =) (3认同)
  • 那应该是`fp.write('\n'.join('{} {}'.格式(x [0],x [1])for m in mylist)`和`fp`是一个文件对象(打开)对于写作,我假设).格式似乎没有把元组作为一个参数或我做错了什么. (2认同)
  • 看起来 str.format 行缺少最后一个括号,对于 mylist 中的 x 应该是 `fp.write('\n'.join('{} {}'.format(x[0],x[1])) ))` (2认同)

Kat*_*iel 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)
Run Code Online (Sandbox Code Playgroud)

csv模块非常强大!

  • +1对于创建csv很有用,但这不应该是`writer.writerow(tup)`吗? (3认同)

小智 5

open('filename', 'w').write('\n'.join('%s %s' % x for x in mylist))
Run Code Online (Sandbox Code Playgroud)