mm1 = [line.strip() for line in open("m1.dat", 'r')]
ii1 = [int(x) for x in mm1]
s1 = 1
er1 = 0.022
er2 = 2.866
w = [1,2,5,6]
f=open('newdat.txt','w')
for item in ii1:
for i in w:
if i == 1:
f.write( s1,item,1,list1[item-1],er2)
elif i == 2:
f.write( s1,item,2,list2[item-1],er1)
elif i == 5:
f.write( s1,item,5,list3[item-1],er2)
else:
f.write( s1,item,6,list4[item-1],er1)
但我有
TypeError: function takes exactly 1 argument (5 given)
我知道我需要格式化我的作品,但如何
看起来你想写一个CSV文件。为此,您可以使用CSV模块或在如下值之间放置逗号:
这将使您试图写入的所有值成为一个数组,然后在每个项之间放入“,”。它还将该数组的每个项转换为字符串,因为
join
希望每个元素都是字符串您正在将6项传递给
write()
函数。此外,您不能在需要将文件对象转换为字符串的文件对象上编写列表。或者在本例中,您可以使用str.join()
将它们连接起来,然后将其写入文件另外请注意,您不应该打开这样的文件。因为外部对象曾经被创建过won't be collected by garbage collector。您可以简单地使用
with
语句来打开文件,从而在块的末尾自动关闭文件另外,作为另一种替代方法(更具pythonic),对于拒绝加入项并转换为字符串,您可以使用
csv
模块并将预期的序列写入csv
文件相关问题 更多 >
编程相关推荐