用python将列表写入文本文件的最佳方法?
方法1:此方法有效,但在列中使用分隔数字打印数字,如图所示: 方法2:此方法给出错误:“list”对象没有属性“write”用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:这个方法有效,但在一行
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]))