保存* .csv没有空格和双引号

时间:2016-04-26 12:26:40

标签: python csv

这是我的行

csv_output = csv.writer(f_output, delimiter=';', quoting=csv.QUOTE_NONE, escapechar=' ')

这是我的输出:

O;4;State[1,1,2]; ; O;3;INFO; ;

我不想要空格。如何保存文件没有空格和双引号?

源文件(new_list):

['O', '3', 'INFO', '', '', ';', "']"]
['V', '4', 'FillLevel', "S7:[CPUA]DB1610', 'INT0', '64", '2002', 'CPUA.DB1610.0,I,64;RW', 'RW', '0', "0']"]
['O', '4', 'State[1,1,1]', '', '', ';', "']"]
['V', '5', 'Occupied', "S7:[CPUA]DB1610', 'X128.0", 'B', 'CPUA.DB1610.128,X0;RW', 'RW', '0', "0']"]
['V', '5', 'Locked', "S7:[CPUA]DB1610', 'X128.1", 'B', 'CPUA.DB1610.128,X1;RW', 'RW', '0', "0']"]
['V', '5', 'ErrDriveRoll', "S7:[CPUA]DB1610', 'X128.2", 'B', 'CPUA.DB1610.128,X2;RW', 'RW', '0', "0']"]

保存csv:

with open(source_file, "w", newline='') as f_output:
            csv_output = csv.writer(f_output, delimiter=';', quoting=csv.QUOTE_NONE, escapechar=' ')
            for r in range(len(new_list)):
                csv_output.writerow(new_list[r][0:3] + new_list[r][5:6])

1 个答案:

答案 0 :(得分:0)

我实际上认为这种情况正在发生,因为您在此escapechar=' '电话中指定了csv.writer()个参数:

csv_output = csv.writer(f_output, delimiter=';', quoting=csv.QUOTE_NONE, escapechar=' ')

The documentation for escapechar说:

  

编写器用于转义分隔符的单字符字符串if   引用设置为QUOTE_NONE,如果是doublequote则设置为quotechar   假。在阅读时,escapechar从中删除任何特殊含义   跟随角色。它默认为None,禁用转义。

由于你已经使用了quoting=csv.QUOTE_NONE,因此它在分号前面加上了你指定的空格。您在问题中粘贴的第三个列表在其第五个索引处有一个;

我仍然认为这不会完全解决您的问题,因为我无法判断您是否尝试从其数据结构为列表行的文件中读取。看起来您可能正在写入您的源文件,这可能会产生意想不到的后果。

相关问题