SQLite:如何将查询结果保存为CSV文件?

SQLite:如何将查询结果保存为CSV文件?,sqlite,csv,Sqlite,Csv,我是SQLite的新手。有没有办法将查询结果导出到CSV文件中?来自和d5e5的评论: 您必须将输出切换到csv模式并切换到文件输出 sqlite> .mode csv sqlite> .output test.csv sqlite> select * from tbl1; sqlite> .output stdout gdw2和d5e5给出了很好的答案。为了使其更简单,以下是在一系列命令中汇集的建议: sqlite> .mode csv sqlite> .

我是SQLite的新手。有没有办法将查询结果导出到CSV文件中?

来自和d5e5的评论:

您必须将输出切换到csv模式并切换到文件输出

sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout

gdw2和d5e5给出了很好的答案。为了使其更简单,以下是在一系列命令中汇集的建议:

sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout

要在csv文件中包含列名,可以执行以下操作:

sqlite> .headers on
sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout
要验证所做的更改,可以运行以下命令:

sqlite> .show
输出:

echo: off   
explain: off   
headers: on   
mode: csv   
nullvalue: ""  
output: stdout  
separator: "|"   
stats: off   
width: 22 18 

除上述答案外,您还可以使用
.once
,方法与
.output
类似。这只会将下一个查询输出到指定的文件,这样您就不必遵循
。output stdout

在上面的例子中

.mode csv
.headers on
.once test.csv
select * from tbl1;

或者,您可以在一行中完成(在win10中测试)

好处:将powershell与cmdlet和管道(|)一起使用


其中query.sql是一个包含sql查询的文件

所有现有答案都只能从sqlite命令行工作,如果要构建可重用的脚本,这并不理想。Python使构建可编程执行的脚本变得容易

将熊猫作为pd导入
导入sqlite3
conn=sqlite3.connect('your\u cool\u database.sqlite')
df=pd.read\u sql('SELECT*from orders',conn)
df.to_csv('orders.csv',index=False)
您可以自定义查询以仅将sqlite表的一部分导出到CSV文件

还可以运行单个命令将所有sqlite表导出为CSV文件:

对于c.execute中的表(“从sqlite_master中选择名称,其中type='table';”)。fetchall(): t=表[0] df=pd.read_sql('SELECT*from'+t,conn) df.to_csv(t+''u one_command.csv',index=False)
有关更多信息,请参阅。

此文件保存在哪里?它打印为标准输出,即您的屏幕。要将输出保存在文件中,请执行以下操作:sqlite>.output test.csv要将打印结果恢复到屏幕:sqlite>.output stdoutPointers在节点库中找到如何执行此操作的位置?如果要使用特定路径,请使用sqlite>.output C:/Users/jdoe/Documents/output.csv。您好!是我干的。虽然我的查询工作得很好,但文件输出是空的。有人知道为什么吗?谢谢你演示如何获取列名!此答案需要更高。请注意,sqlite3会将输出附加到文件末尾,而不会删除以前的内容。但每次执行
.output filename.csv
都会创建或删除文件。从shell导出,一行:
sqlite3 -help
sqlite3 -header -csv db.sqlite 'select * from tbl1;' > test.csv
get-content query.sql | sqlite3 -header -csv db.sqlite > test.csv