【问题标题】:Export list of values into csv?将值列表导出到csv?
【发布时间】:2018-06-26 23:58:45
【问题描述】:

我在 Win7 上使用 Python 2.x。

我的问题是:

我得到了一个数字列表:angle = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 我想将数字导出到 csv 文件。所以 csv 应该是这样的:

0 | 1 | 2 |...| 10 |

但到目前为止我在 csv 文件中得到的是:

[0 | 1 | 2 |...| 10] |

我的代码是:

angle = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
ldsvp = open("C:\Controlled NP\\" + "LDS1.csv", 'ab')
with open('LDS1.csv', 'wb') as output:
   ldsvp.write('Angle' + ',' + str(angle))
   ldsvp.write('\n')

那么...有什么建议可以从 csv 文件中删除 [ 和 ]?

【问题讨论】:

  • ','.join([str(a) for a in angle])
  • @Julien 在这些情况下,我更喜欢','.join(map(str, angle))的简洁性
  • 所以,为了清楚起见,当您执行str(my_list) 时,它会创建 list 的字符串表示形式,它看起来很像您要编写的列表文字在源代码中。如果您实际上是在编写 csv 文件,我建议使用 csv 模块。

标签: python python-2.7 csv


【解决方案1】:

正如@juanpa.arrivillaga 所建议的那样,python 有 csv 模块,这使得工作更容易。

一个例子是

import csv
import os

def csvWriter(file):
    if os.path.exists(file):
        mode = "ab"
    else:
        mode = "wb"

    with open(file, mode) as csvfile:
        writer = csv.writer(csvfile, dialect='excel')
        writer.writerow([rec for rec in range(1, 11)])

if __name__ == "__main__":
    csvWriter('names.csv')

输出如下所示

1,2,3,4,5,6,7,8,9,10

【讨论】:

    猜你喜欢
    • 2017-07-20
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多