用python将列表写入文本文件的最佳方法?

用python将列表写入文本文件的最佳方法?,python,text,spyder,Python,Text,Spyder,方法1:此方法有效,但在列中使用分隔数字打印数字,如图所示: 方法2:此方法给出错误:“list”对象没有属性“write” with open('x.txt', 'w') as f: writer = csv.writer(f, delimiter='\n') writer.writerows(x) #file = open("x.txt","w") # #file.write(str(x)) # # #file.close() 方法3:这个方法有效,但在一行

方法1:此方法有效,但在列中使用分隔数字打印数字,如图所示:

方法2:此方法给出错误:“list”对象没有属性“write”

with open('x.txt', 'w') as f:
     writer = csv.writer(f, delimiter='\n')
     writer.writerows(x)
#file = open("x.txt","w")
# 
#file.write(str(x)) 
# 
# 
#file.close() 
方法3:这个方法有效,但在一行中写入所有逗号的列表,而我需要一列数字

#for item in x:
#  x.write("%s\n" % item)
方法4:错误:“str”对象没有属性“write”

with open('x.txt', 'w') as f:
     writer = csv.writer(f, delimiter='\n')
     writer.writerows(x)
#file = open("x.txt","w")
# 
#file.write(str(x)) 
# 
# 
#file.close() 
方法5:错误:未定义名称“number”

for i in x:
    i.write(i, '\n')
我对这些错误感到沮丧,我想用python来节省我的时间,我在调试中浪费了所有的时间,现在我几乎快要完成了。我将感谢你的关注

大家好

我有一个包含7列的文本文件,我需要将每列数字写入一个单独的文本文件。具有许多十进制数字的数字。因此,我试图从python中的列表写入文本文件,正如您所看到的,每个对应列表的名称都与它应该写入的文本文件相同。 但我没有成功,尽管我已经尝试了互联网上已有的几个例子,我不知道错误的原因。
为什么不一次彻底澄清一下呢?

如果我正确理解了您想要的文件结构:

您希望每行有7个数字,顺序为“t z y x Rz Ry Rx”,它们之间有空格

首先,您需要遍历所有列表的第一个元素,而不是第二个元素,等等

这样做可能是最好的

编辑: 好的,如果我现在理解了格式,下面应该会有帮助:

with open(filename, 'w') as f:  # We open file for writing
    for line in zip(t, z, y, x, Rz, Ry, Rx):
        line = [str(i) for i in line]  # convert to strings
        f.write(' '.join(line) + "\n")  # joins space and ends the line
对每个变量重复

编辑2: 我对您的方法不起作用的原因的解释:

方法1

这就是csv writer的writerows的工作方式

方法2

您正在为x中的每个项目执行操作,其中x是列表,而不是您可以写入的文件。更正代码:

with open('x.txt', 'w') as f:
    f.write('\n'.join([str(i) for i in x]) + '\n')  # omit "+ '\n'" if you don't want newline at the end of the file.
请注意,'%s\n'不能工作,因为项是int,而s代表字符串,f.write('%d\n'%item》)应该工作

方法3

str(x)将列表格式化为您在文件中看到的表单,您只需将其写入文件。通过打印(str(x))可以看到格式化

方法4

与方法2相同

方法5

与方法2类似。你们并没有在任何地方定义数字。要使其正常工作,请使用:

with open('x.txt', 'w') as f:
    for item in x:
        f.write(str(item) + '\n')

既然你要进口熊猫,为什么不也用呢

with open('x.txt', 'w') as f:
    for number in x:
        f.write('%d\n' % number)

您的五种方法中的
x
是否与示例中的
x
相同?换句话说,它是一个类似字符串的数字列表吗?我更新了我的问题:每个对应列表的名称与它应该写入的文本文件相同。我有一个包含7列数字的文本文件,我想将列分开,并将每列写入一个单独的文本文件。你必须给出一个简单的示例。当然,如果你知道如何写
x
,你也知道如何写
t
,等等,你的例子短了七本。我更正了它,谢谢你,为什么我在编辑之前会得到反对票?谢谢,但我有一个7列数字的文本文件,我想分离列,并将每列写入一个单独的文本文件。这将在一个文件中写入它们。我修改了这个文件并成功地完成了90%,两个数字之间仍然有一个空格:这是代码:以open('x.txt','w')作为f:#我们为x中的行打开文件:line=[str(i)for i in line]#转换为字符串f.write('.join(line)+“\n”)#连接空格并结束行如果x=[1,2,3,4],我不明白输出应该是什么样子;x、 txt是“1 2 3 4\n”还是什么?它应该是一列数字谢谢
data = pd.read_table(myfile, header=None, sep='\s+')
data.columns = 't','x','y','z','Rx','Ry','Rz'

for column in data:
    with open(column + ".txt", "w") as ofile:
        ofile.write(' '.join(str(i) for i in data[column]))