从列表中写一个没有括号的txt

时间:2015-12-10 11:57:23

标签: python list

我遇到从列表转换为.txt文件的问题。 我必须将Nx4数组保存到没有方括号的文本文件中,而不更改顺序和行。 我的代码是:

for n,en in enumerate(var_4):
    stats.append(str([var_1,var_2[n],var3[n],en]))

我应该编写什么写命令来获取如下文本文件:

var_1 , var_2[0] , var_3[0] , var_4[0]
var_1 , var_2[1] , var_3[1] , var_4[1]

...

var_1 , var_2[N] , var_3[N] , var_4[N]

3 个答案:

答案 0 :(得分:5)

s = ", ".join(list)

将字符串列表加入到带有“,”作为分隔符

的字符串中
s = ", ".join(map(str, list))
如果列表的元素不是字符串

将起作用

o.write(s +"\n")

将写入结果并在写入字符串后添加新行

答案 1 :(得分:1)

您正在将列表转换为字符串,这将使用括号和逗号为您提供列表的人类可读表示。

相反,您可以遍历列表并将项目单独转换为字符串。您可以使用生成器执行此操作:

with open("list.txt", "a") as f: for item in strings: f.write(item + "\n")

然后您可以将字符串写入文本文件,例如:

"a"

with open("list.txt", "a") as f: for item in mylist: f.write(str(item) + "\n") 表示您以附加模式打开文件,而不是每次都覆盖其内容。

或者只是遍历列表并在迭代时将项目直接转换为字符串:

{{1}}

答案 2 :(得分:0)

感谢这两个答案。需要两者的组合才能获得所需的结果。解决方案是:

with open('list.txt','a') as f:
    for l,el in enumerate(stats):
        string = ', '.join(map(str,el))
        for item in string:
            f.write(item)
    f.write('\n')

再次感谢,你给我省了很多麻烦!