如何将字符串列表写入CSV或XLSX文件

时间:2020-06-14 00:48:47

标签: python csv text output

我有一个列表列表;

L = 
[
['Route', 1, (20, 21), (22, 23),...]
["Path", 2,  (20, 21), (25, 26),...]
]

理想情况下,我想将此数据放入foo.csv或bar.xslx文件中,这样

  • 字符串是A1行中的第一个元素
  • 数字是第二个A2
  • 然后接下来的n个元素是数字的

每次我自己尝试执行此操作时,最终都会将逗号分隔成对。

3 个答案:

答案 0 :(得分:0)

问题的答案取决于您的意思:

接下来的n个元素是数字对

如果您希望(20, 21)之类的项目显示在您的.csv文件中,那是不可能的,因为它包含逗号。

如果您不能更改逗号分隔符,则需要选择其他文件格式。例如,您可以使用以下代码生成制表符分隔值(.tsv):

L = [
    ['Route', 1, (20, 21), (22, 23)],
    ["Path", 2,  (20, 21), (25, 26)],
]

with open('out.tsv', 'w') as file:
    for row in L:
        file.write('\t'.join(map(str, row)) + '\n')

运行此代码将产生以下out.tsv文件:

Route   1   (20, 21)    (22, 23)
Path    2   (20, 21)    (25, 26)

答案 1 :(得分:0)

将熊猫作为pd导入

df = pd.DataFrame(L)

df.to_csv(“ out.csv”)

答案 2 :(得分:0)

如果要使用csv,则必须将每个元组都用引号引起来。如果您的应用程序可以将第二个值作为字符串处理,则可以使用:

with open('out.csv','wt') as f:
    for row in L:
       print (*list(map(lambda x:str(x).join('"'*2),row)),sep=',',file=f)

为印刷版声明的单行道歉,但弄清楚它的作用本身就是一个教训。