【问题标题】:write a list as it is in a text file in python [duplicate]在python的文本文件中写一个列表[重复]
【发布时间】:2018-06-07 23:50:43
【问题描述】:

我有一个列表l1=['hi','hello',23,1.23]

我想将文本['hi','hello',23,1.23]写在一个文本文件中,即list的值原样。

简单

with open('f1.txt','w') as f:
     f.write(l1)

没有用,所以我尝试了这个

f=open('f1.txt','w')
l1=map(lambda x:x+',', l1)
f.writelines(l1)
f.close()

但这也不起作用。它说

TypeError: unsupported operand type(s) for +: 'int' and 'str'

当列表包含数字、字母和浮点数时如何实现?

【问题讨论】:

  • 你有列表l1=['hi','hello',23,1.23],你想写文本['hi','hello','welcome'],但是这两者有什么关系?
  • 但是,如果您已经完成 f.write(str(l1)),它应该在您共享的第一个 code-sn-p 中起作用
  • 不是骗子,因为当列表包含字符串时,提到的答案here 不起作用,数字同时浮动。
  • 一些答案​​也适用于数字元素。例如thisthisthis

标签: python


【解决方案1】:

使用列表的__str__() 方法。

with open('file.txt', 'w') as f:
    f.write(l1.__str__())

任何对象的__str__() 方法返回print 采用的字符串;在你的情况下,你的格式化列表。

【讨论】:

  • 为什么不只是str(l1).__str__(..) 是一个魔术函数,到处展示魔术并不是一个好习惯(特别是在不需要时):)
  • @MoinuddinQuadri 哦,我的印象来自 >“我想在文本文件中写入文本 ['hi','hello','welcome']”OP 想要字符串的表示
  • 是的,需要字符串表示。但是你可以通过str(l1) 得到。
【解决方案2】:

你刚刚:

with open('f1.txt', 'w') as f:
    f.write(str(l1))

【讨论】:

  • @pstatix 为什么投反对票?它不像这样不会工作或任何东西。
  • @RoadRunner 我赞成删除。我误读了元素列表。
【解决方案3】:

您不能将列表直接写入文件,但首先您必须将列表转换为字符串,然后将字符串保存到文件中。 我已经回答了同样的问题。你可以在这里查看。

How write a list of list to file

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 2013-09-19
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 2016-01-31
    • 2014-11-22
    • 2015-04-01
    相关资源
    最近更新 更多