Mer*_*lin 25 python mysql csv sqlite file-io
我有一个名为"clients"的Sqlite 3和/或MySQL表.
使用python 2.6,如何使用标题创建名为Clients100914.csv的csv文件?excel方言...
Sql执行:select*只提供表数据,但我希望完整的表包含标题.
如何创建记录集以获取表头.表头应该直接来自不是用python编写的sql.
w = csv.writer(open(Fn,'wb'),dialect='excel')
#w.writelines("header_row")
#Fetch into sqld
w.writerows(sqld)
Run Code Online (Sandbox Code Playgroud)
这段代码让我打开文件,没有标题.也无法弄清楚如何使用文件作为日志.
Cri*_*itu 59
import csv
import sqlite3
from glob import glob; from os.path import expanduser
conn = sqlite3.connect( # open "places.sqlite" from one of the Firefox profiles
glob(expanduser('~/.mozilla/firefox/*/places.sqlite'))[0]
)
cursor = conn.cursor()
cursor.execute("select * from moz_places;")
#with open("out.csv", "w", newline='') as csv_file: # Python 3 version
with open("out.csv", "wb") as csv_file: # Python 2 version
csv_writer = csv.writer(csv_file)
csv_writer.writerow([i[0] for i in cursor.description]) # write headers
csv_writer.writerows(cursor)
Run Code Online (Sandbox Code Playgroud)
PEP 249(DB API 2.0)有更多信息cursor.description.
使用csv模块非常简单,可以完成这项任务.
import csv
writer = csv.writer(open("out.csv", 'w'))
writer.writerow(['name', 'address', 'phone', 'etc'])
writer.writerow(['bob', '2 main st', '703', 'yada'])
writer.writerow(['mary', '3 main st', '704', 'yada'])
Run Code Online (Sandbox Code Playgroud)
准确创建您期望的格式.
您可以轻松地手动创建它,使用选定的分隔符编写文件.您也可以使用csv模块.
如果它来自数据库,您只需使用sqlite客户端的查询:
sqlite <db params> < queryfile.sql > output.csv
Run Code Online (Sandbox Code Playgroud)
这将创建一个带有制表符分隔符的csv文件.
| 归档时间: |
|
| 查看次数: |
57435 次 |
| 最近记录: |