Python删除csv行只能部分工作

时间:2013-12-05 11:46:21

标签: python date csv

我正在编写一个打开csv文件的程序,该文件包含销售数据并删除记录(如果它们来自某一天) - 出于某种原因,这仅适用于大约一半的相关记录,而不是删除所有数据。 2013年12月3日和2013年12月4日,它从第4个记录中删除了大约一半的记录,从第4个记录中删除了一半记录。在原始文件中,所有日期都采用完全相同的格式,因此我无法理解为什么它会以不同的方式处理其中的一些。

以下是代码:

import csv
from datetime import date, timedelta, datetime

with open('C:\\Phocas-Automation\\fullfiletest.csv', 'rb') as f:
    reader = csv.reader(f)
    counter = 0
    existing_transactions = []
    columns = []
    for row in reader:
        if counter == 0:
           for col in row:
               columns.append(col)
        else:
            transaction = {}
            for i, v in enumerate(row):
                transaction[columns[i]] = v
            existing_transactions.append(transaction)
        counter += 1

days=[] 
for x in transactions: # transactions is a similar csv which contains data from 2 specific days
    if str(x['date']) not in days:
        days.append(str(x['date']))
print days



FMT = '%d/%m/%Y'
counter=0
for x in existing_transactions:
        t2 = datetime.strptime(x['date'], FMT)
        for z in days:
            if str(t2)==str(z):
                existing_transactions.remove(x)


ofile  = open('C:\\Phocas-Automation\\Output\\Phocasfile.csv', "wb")
writer = csv.writer(ofile, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL)
for x in headersdict:
    writer = csv.DictWriter(ofile, fieldnames=columns, dialect='excel')
    writer.writerows([x])
for x in existing_transactions:
    writer = csv.DictWriter(ofile, fieldnames=columns, dialect='excel')
    writer.writerows([x])

提前感谢您的帮助。

0 个答案:

没有答案