截断CSV文件中的单元格

时间:2018-09-05 10:34:38

标签: python-3.x

im当前正在尝试创建一个软件,该软件可以查找并截断.csv文件中包含多个字符集的单元格。

我在这里:     导入csv

with open('test.csv', 'r', newline = '', encoding = "UTF-8") as csv_file, \
     open('output.csv', 'x',newline='',encoding="UTF-8") as output_file:

        dialect = csv.Sniffer().sniff(csv_file.read(2048))
        dialect.escapechar = '\\'
        csv_file.seek(0)
        writer = csv.writer(output_file, dialect)
        for row in csv.reader(csv_file, dialect) :
                copy = row
                for col in copy :
                        #truncate the file to desired lenght
                        col = col[:253] + (col[:253] and '..')
                writer.writerow(copy)

这里的问题是新文件已创建但未更改。

感谢您的考虑。

1 个答案:

答案 0 :(得分:1)

问题是,您重新创建了col值。这意味着旧值不会更改,并且仍然是列表中的旧值。最好是重新创建原始列表,这可以通过“列表理解”来实现。

{{1}}

此外,如果变量名称相同,它实际上不会执行任何操作。因此,您将更改后的值col命名为与循环变量相同的名称,但这并不意味着该循环变量包含的内容(因此列表副本中的值)现在已被替换。

这也是为什么您不必执行copy = row的原因。您可以只使用行。