为什么python中的函数不正确地添加了标题?

时间:2016-07-25 05:22:50

标签: python csv header

所以,我有这个制作文件的功能,在这种情况下,我正在做.csv文件。在该函数中,我想添加该功能以在新的写入文件中添加标题。但是,似乎在写入文件时,新的标题行将添加到上一行,而不是将第一行向下移动以添加标题行(请参见图片)。

enter image description here

这是我的代码:

def fileMaker(name, data):
    header = ['UTC Time','ALtitude']
    newFile = open(name,'w')
    newFile.write(",".join(header)+"\n"))
    for row in data:
        for each in row:
            newFile.write(each)
        newFile.write('\n')
    newFile.close()

如果您可以帮助获取第一行中的标题并将旧的第一行移动到第二行,将第二行移动到第三行,依此类推......我将非常感激!如果问题需要格式化,请不要犹豫。

1 个答案:

答案 0 :(得分:1)

当您在列表中使用str()时,它将按字面意思返回您所看到的内容。 E.g:

>>> a = [1, 2, 3]
>>> str(a)
'[1, 2, 3]'

你想要的是在字符串上使用.join()函数并加入列表:

>>> a = ['1', '2', '3']
>>> "".join(str(a))
'123'

请注意,如果这些是正常整数,则会引发错误:

>>> a = [1, 2, 3]
>>> "".join(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, int found

在您的情况下,您实际上可以使用它:

newFile.write(",".join(a)+"\n")

这会用逗号分隔每个值。