2017-06-19 189 views
0

这可能很平凡,但我尝试了很多并且无法正常工作。
我有下面这段代码:Python - 将逗号字符附加到csv文件中的一行

if a == 0 and b == c-1: 
    row.append(str(arrayElement[k])+"],") 

.csv文件所需的输出应类似于以下内容:

[1,1,2], 

即:我想该行的最后一列包含字符串2], 然而,我所得到的是这样的:

[1,1,"2]," 

如何GE以我想要的格式输出?

编辑:我从二进制文件读取,并最终输出应该是这样的:

[[1,1,2], 
[2,3,4], 
[5,6,7]] 

我成功编写[[[]],所以第一行中的第一个单元格中包含:[[1 , 在第二行第一个单元格:[2,在第二排4],

最后一个单元格的完整代码如下:

 k = 0 
     row = [] 
     for M in range (X): 
      for N in range(Y): 
       if N != Y: 
        k = k + 1      
        if M == 0 and N == 0: 
         row.append("[["+str(arrayElement[k-1])) 
        elif M == 0 and N == Y -1: 
         row.append(str(arrayElement[k-1])+"],") 
        elif M == X -1 and N == Y -1: 
         row.append(str(arrayElement[k-1])+"]]") 
        elif M > 0 and N == Y -1: 
         row.append(str(arrayElement[k-1])+"],") 
        elif M > 0 and N == 0:      
         row.append("["+str(arrayElement[k-1])) 
        else: 
         row.append(str(arrayElement[k-1])) 
      WeightsWriter.writerow(row) 
      row = [] 

回答

0

尝试将逗号添加到数组本身,而不是将行添加到CSV文件时添加逗号。例如:

row = [1,2,3] 
csv.write(str(row)+",") # Writes [1, 2, 3], to CSV file 

如果你有很多不同的行愿与您可以使用",".join(rows)用逗号加入行的逗号加入他们的行列。例如:

rows = [] 
rowa = [1,2,3] 
rows.append(rowa) 
rowb = [4,5,6] 
rows.append(rowb) 
",".join([str(_) for _ in rows]) # Outputs [1, 2, 3],[4, 5, 6] 

希望这有助于!

+0

我已经试过这个解决方案,但它使输出更加混乱。 顺便说一句,我正在使用一个像'parametersWriter.writerow(row)' – philippos

+0

这样的命令你是什么意思使输出更杂乱?它是否按预期工作? –

+0

不幸的不是。输出更复杂,值之间有更多的逗号。 – philippos

0

显示的引号是因为CSV代表逗号-分隔值。如果它必须包含文字逗号,则需要引用它。

你似乎做的不是“在行尾添加一个逗号”;你在这里混合抽象层次。一行末尾的逗号表示该行中的最后一个值是空的。您尝试强制CSV生成代码执行一些文本文件级别的事情。

在正确的抽象级别运行意味着将一个空字符串你想保存列表:

import csv 
import sys # for the sake of example 

writer = csv.writer(sys.stdout) 
writer.writerow([1, 2, 3]) # writes 1,2,3 
writer.writerow([1, 2, 3, '']) # writes 1,2,3, 

现在有一个逗号空值,这恰好是在年底前的线。

相关问题