保存到临时csv文件中

时间:2016-11-28 22:29:00

标签: python python-2.7 csv

我正在尝试保存到临时csv文件中。虽然该代码段不会返回错误/回溯,但它会返回一个空的临时csv文件,其中包含PermitData csv中第一列的名称(即使下一个语法应该跳过该文件)。这个片段有什么问题?请提供您的细致反馈。

import csv

with open('C:\\Users\\Python Files\\output.csv', 'w') as output:
    with open('C:\\Users\\Python Files\\PermitData.csv', 'rb') as f:
        reader = csv.reader(f)
        output.write(next(reader)[0].replace('\t', ' ') + '\n')
        data = list(reader)
        for item in data:
            item = item[0].split(' ')
            if len(item) > 6:
                item[1] = item[1].title()
                output.write(' '.join(item) + '\n')

print 'Output created'

PermitData.csv中的行[1]的地址概述为:

1234 PRESTON ROAD
4587 RAINING COURT

我需要它们如下所示,所以我使用title()将地址转换为:

1234 Preston Road
4587 Raining Court

由于直接写入PermitData.csv文件是不可取的并且不可行,我正在创建一个临时文件。如果有办法直接写入原始源,在本例中为PermitData.csv,请告诉我它是如何合理的。

1 个答案:

答案 0 :(得分:1)

这应该做你需要的。

  • 我把开头和开头分开了关闭文件。
  • 看来你正在使用空格作为分隔符,所以必须如此 指定。
  • 我还将原始2D列表中的数据复制到另一个列表中 修改。无需复制,您可以创建一个空的 2D列表并附加到它。
  • 我们将.title()函数设置为列表的每个元素。 如果您知道某些元素不需要它,您可以使用条件, 像第一栏一样。

    import csv
    
    with open('C:\\Users\\Python Files\\PermitData.csv', 'r') as f:
        reader = list(csv.reader(f, delimiter=' '))
    
    new_data = list(reader)
    for x, line in enumerate(reader):
        for y, word in enumerate(line):
            new_data[x][y] = word.title()
    
    with open('C:\\Users\\Python Files\\output.csv', 'w') as f:
        writer = csv.writer(f, delimiter=' ')
        writer.writerows(new_data)
    
    print 'Output created'