【发布时间】:2018-06-12 04:52:47
【问题描述】:
我需要比较.accdb 文件和.csv 文件。
两个文件文件具有相同类型的记录但计数不匹配。所以我想显示那些不常见的记录并将其存储到以; 分隔的新文本文件中,并带有列标题。
.accdb:
ID Name
1 Mak
2 Smith
3 Jack
.csv 文件:
ID Name
1 Mak
2 Smith
3 Jack
4 Johnson
5 Mike
预期的 .txt 文件:
ID; Name
4; Johnson
5; Mike
我的尝试:
import pyodbc
CSVfile = 'E:\Python\AccessCSVFiles\EMP.csv'
TEXTfile = 'E:\Python\AccessCSVFiles\EMP_UPDATES.txt'
conn_string = r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=E:\Python\AccessCSVFiles\EMP.accdb;'
con = pyodbc.connect(conn_string)
cur = con.cursor()
SQLQuery = 'SELECT * FROM EMP;'
rows = cur.execute(SQLQuery).fetchall()
records = [tuple(map(str,record)) for record in rows]
accessfile = set(records)
with open(CSVfile) as a:
first_line = a.readline()
with open(TEXTfile, 'w') as result:
result.write(first_line)
for line in a:
if line not in accessfile:
print line
但是在文本文件EMP_UPDATES.txt 中,所有 5 条记录都用, 分隔。
【问题讨论】:
标签: python python-2.7 csv