所以,我有这个制作文件的功能,在这种情况下,我正在做.csv文件。在该函数中,我想添加该功能以在新的写入文件中添加标题。但是,似乎在写入文件时,新的标题行将添加到上一行,而不是将第一行向下移动以添加标题行(请参见图片)。
这是我的代码:
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()
如果您可以帮助获取第一行中的标题并将旧的第一行移动到第二行,将第二行移动到第三行,依此类推......我将非常感激!如果问题需要格式化,请不要犹豫。
答案 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")
这会用逗号分隔每个值。