2016-11-16 89 views
0

我是Python新手,並請求您的協助。我有MS Access數據庫中的五個表,我需要編譯每個表的CSV文件。其中一個表是Perm_Reviews,它是片段的一部分。幸運的是,我能夠查詢MS Access數據並返回數據庫中的行和列。有人可以提供關於如何將表格存儲爲CSV文件的幫助。將MS Access表保存爲CSV

import pyodbc 
import csv 

conn_string = ("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=T:\\DataDump\\7.18.2016 PCR etrakit.accdb") 

save_csv = 'C:\Desktop\CSVFiles' 

conn = pyodbc.connect(conn_string) 

cursor = conn.cursor() 

SQL = 'select * from Perm_Reviews;' 

for row in cursor.execute(SQL): 
    print row 

cursor.close() 
conn.close() 

print 'All done for now' 
+0

簡單的解決辦法是選擇所有列,用硬編碼的逗號在它們之間:'SELECT col1,',',vol2,',',col3 ... FROM Perm_Reviews;'。如果您的列可以包含更復雜的逗號。 –

回答

1

我想這就是你要找的。

import pyodbc 
import csv 

conn_string = ("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=T:\\DataDump\\7.18.2016 PCR etrakit.accdb") 

conn = pyodbc.connect(conn_string) 

cursor = conn.cursor() 

cursor.execute('select * from Perm_Reviews;') 

with open('Perms_Review.csv','w') as f: 
    writer = csv.writer(f) 
    writer.writerows([i[0] for i in cursor.description]) 
    writer.writerows(cursor) 

cursor.close() 
conn.close() 
+0

是的感謝您的協助! –

0

Python有一個內置的csv模塊,你可以在CSV容易使用,一個簡單的例子,下面標題:

import csv 

with open('names.csv', 'w') as csvfile: 
    fieldnames = ['first_name', 'last_name'] 
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames) 

    writer.writeheader() 
    writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'}) 
    writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'}) 
    writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})