我正在编写一个打开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])
提前感谢您的帮助。