将python列表编写为CSV

时间:2018-08-31 05:02:39

标签: python

要通过csv输出文件获得正确的格式需要一些努力。

我在python中找到了以下列表:

   [['dropbearid', 'distance'],
    ['DB_1487', 17.543651156695343],
    ['DB_1901', 24.735333924441772],
    ['DB_2800', 6.607094868078008]]

当我使用

import csv
out = csv.writer(open("myfile.csv","w"), delimiter=',',quoting=csv.QUOTE_ALL)
out.writerow(found)

我得到一个文件,当我在excel中打开时,该文件具有值,但在一个单元格中具有“ dropbearid”,“ distance”,在下一个单元格中具有“ DB_1487”,“ 17.54 ...”,依此类推。第一行。

是否有一种获取输出设置的方法,所以将'dropbearid'和'distance'放在两列中,并将下面的所有列表放在下面的行中?

谢谢!

6 个答案:

答案 0 :(得分:4)

欢迎使用Stackoverflow。将列表列表写到一行,这就是为什么在一个单元格中有两个值的原因,因为在单元格中写入了found的每个元素(这是两个元素的列表)。您需要遍历列表列表,并将每个列表写入一行。这应该可行:

import csv
out = csv.writer(open("myfile.csv","w"), delimiter=',',quoting=csv.QUOTE_ALL, newline='')
for row in found:
    out.writerow(row)

答案 1 :(得分:1)

函数writerow()将写一行。因此,您需要使用writerows()并将newline参数设置为'',以避免文件中出现空白行。

found = [['dropbearid', 'distance'],
    ['DB_1487', 17.543651156695343],
    ['DB_1901', 24.735333924441772],
    ['DB_2800', 6.607094868078008]]
import csv
with open('myfile.csv', 'w', newline='') as outfile:
    writer = csv.writer(outfile)
    writer.writerows(found)

希望这会有所帮助!干杯!

答案 2 :(得分:1)

import pandas as pd
found = [['dropbearid', 'distance'],['DB_1487', 17.543651156695343],['DB_1901', 24.735333924441772],['DB_2800', 6.607094868078008]]
dffound = pd.DataFrame(found)
header = dffound.iloc[0]
dffound = dffound[1:]
dffound.rename(columns = header)
dffound.tocsv("enter path here")

答案 3 :(得分:0)

使用pandas DataFrames将列表写入CSV文件,这使格式化变得更加容易

self.tabBarController?.tabBar.isUserInteractionEnabled = false

答案 4 :(得分:0)

您将使用 writerows 函数而不是 writerow 函数将子列表的每个项目都写为一列。

with open('myfile.csv', 'w+') as csv_file:
    writer = csv.writer(csv_file, delimiter=',')
    writer.writerows(d)

答案 5 :(得分:0)

为此使用熊猫库。

import pandas as pd
df = pd.DataFrame(found, columns=['dropbearid', 'distance'])
df = df.drop(0) # drop the header row
df.to_csv('Found.csv', index=False)