指点成金-最美分享吧

登录

如何创建csv文件

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了如何创建csv文件相关的知识,希望对你有一定的参考价值。

如何创建CSV文件

1、首先打开excel办公软件,通过ctrl+n新建工作簿。

2、在现有工作簿中进行编辑表格,通过编辑完成后按组合命令ctrl+s打开另存为窗口。

3、其中指定保存路径,文件名更改,和选择文件类型。

4、其中文件类型中选择*.csv格式,选择完成点击保存。

5、在弹出窗口中阅读提示点击是即可,此时即代表创建csv文件成功。

参考技术A

1、电脑打开Excel表格,编辑好内容后,点击左上角的文件。

2、点击Excel文件后,选择另存为。

3、进入另存为页面,文件类型中选择CSV格式,然后点击保存。

4、点击保存CSV格式后,csv文件就创建好了。

参考技术B 【创建CSV文件】您可以使用Excel表格创建通讯录,并将其保存为CSV格式文件(也可直接 下载CSV文件示例 ,按列表内容编辑后保存为CSV文件即可),操作方法如下:
1、打开Excel表格,在第一行先定义通讯录的字段,可以接受许多常用标题字段(如联系组、姓名、邮件地址等);(注:创建通讯录CSV文件时,文件必须包含“邮件地址”、“姓名”字段,可以指定为一列)

2、然后对应各标题字段编辑好通讯录资料后,点击Excel表格左上角的“文件”——>“另存为”;

3、输入文件名,保存类型选择“CSV(逗号分隔)(*.csv)”保存即可。

【修改CSV文件】您也可以修改从客户端导出的通讯录CSV文件,修改方法如下:
1、打开导出的CSV文件,即可看到类似如下图的表格;

2、您可以对表格的邮件地址、姓名等资料进行修改、添加或删除,修改完成后另存为CSV格式,再重新导入到客户端或者到邮箱通讯录里即可。
参考技术C 1.Excel 另存为CSV文件即可。
2.如果你的是文本文件,便是每列之间都有逗号或\t 分隔,那么直接将.txt改成.csv即可。
3.如果你是从程序中输出成csv文件,那么用程序控制,各列之间的分隔符为逗号或\t,直接输出为csv文件即可。
参考技术D CSV是文本格式的表格,本质就是txt,写完数据后把txt的扩展名改成csv就可以。
常见的可以用excel之类的电子表格,选择文件另存为CSV格式。本回答被提问者采纳

如何在 Python 中从数据库创建 CSV 文件?

【中文标题】如何在 Python 中从数据库创建 CSV 文件?【英文标题】:How do I create a CSV file from database in Python? 【发布时间】:2011-04-12 05:39:09 【问题描述】:

我有一个名为“clients”的 Sqlite 3 和/或 MySQL 表..

使用 python 2.6,如何创建一个名为 Clients100914.csv 的带有标题的 csv 文件?擅长方言...

Sql 执行:select * 只给出表格数据,但我想要完整的带有标题的表格。

如何创建记录集以获取表头。表头应该直接来自不是用 python 编写的 sql。

w = csv.writer(open(Fn,"wb"),dialect="excel")#w.writelines("header_row")#Fetch into sqldw.writerows(sqld)

这段代码让我打开了文件并且没有标题。也无法弄清楚如何将文件用作日志。

【问题讨论】:

你想将该表的内容放入文件中吗? 使用csv 模块有什么问题? 我需要表格的所有内容和日期。 我想出了大部分。仍然需要仅来自数据库的标题帮助。我可以获取数据。 @user428862:你试过什么代码?请发布您的代码。如果您需要“仅来自数据库的标题”的帮助,您需要解释您的意思并显示不起作用的代码。 【参考方案1】:
import csvimport sqlite3from glob import glob; from os.path import expanduserconn = 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)

PEP 249 (DB API 2.0) 有更多关于cursor.description 的信息。

【讨论】:

对于游标中的行:csv_writer.writerow(row) >csv_writer.writerows(row) @user428862:该代码还应该适用于 MySQL 或 Sybase 数据库。我已根据您的建议更新了答案。 您应该以文本模式打开文件 @glefait,实际上不,文档建议使用二进制模式。另请参阅答案历史中的修订版 7。 我在 python3 和 linux 上运行它。如果我将它作为二进制文件打开,我需要将我的文本值转换为二进制。【参考方案2】:

使用csv module 非常简单,适合这项任务。

import csvwriter = 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"])

精确创建您期望的格式。

【讨论】:

它不会以编程方式写入表的标题。【参考方案3】:

您可以轻松地手动创建它,使用选定的分隔符编写文件。你也可以使用csv module。

如果它来自数据库,您也可以只使用来自您的 sqlite 客户端的查询:

sqlite  < queryfile.sql > output.csv

这将创建一个带有制表符分隔符的 csv 文件。

【讨论】:

当然可以在sqlite命令中使用.separator ,命令,使csv文件使用逗号分隔符。 它会转义数据中的分隔符吗?【参考方案4】:

如何从现有表格中提取列标题:

您不需要解析 SQL“创建表”语句。这很幸运,因为“创建表”语法既不好也不干净,它是 warthog-ugly。 p>

您可以使用table_info 编译指示。它为您提供有关表中每一列的有用信息,包括列的名称。

例子:

>>> #coding: ascii... import sqlite3>>>>>> def get_col_names(cursor, table_name):...     results = cursor.execute("PRAGMA table_info(%s);" % table_name)...     return [row[1] for row in results]...>>> def wrong_way(cur, table):...     import re...     cur.execute("SELECT sql FROM sqlite_master WHERE name=?;", (table, ))...     sql = cur.fetchone()[0]...     column_defs = re.findall("[(](.*)[)]", sql)[0]...     first_words = (line.split()[0].strip() for line in column_defs.split(","))...     columns = [word for word in first_words if word.upper() != "CONSTRAINT"]...     return columns...>>> conn = sqlite3.connect(":memory:")>>> curs = conn.cursor()>>> _ignored = curs.execute(...     "create table foo (id integer, name text, [haha gotcha] text);"...     )>>> print get_col_names(curs, "foo")[u"id", u"name", u"haha gotcha"]>>> print wrong_way(curs, "foo")[u"id", u"name", u"[haha"] <<<<<===== WHOOPS!>>>

现在已删除的“解析创建表 SQL”答案的其他问题:

    填充例如create table test (id1 text, id2 int, msg text, primary key(id1, id2)) ... 不仅需要忽略CONSTRAINT,还需要忽略关键字PRIMARYUNIQUECHECKFOREIGN(参见create table 文档)。

    需要指定re.DOTALL以防SQL中有换行符。

    line.split()[0].strip() 中,strip 是多余的。

【讨论】:

谢谢,john....在下面的代码中,我只需要在现有代码中添加两行...Go Python!【参考方案5】:

这很简单,对我来说效果很好。

假设您已经连接到数据库表并且还获得了一个游标对象。所以从那一点开始。

import csvcurs = conn.cursor()curs.execute("select * from oders")m_dict = list(curs.fetchall())with open("mycsvfile.csv", "wb") as f:    w = csv.DictWriter(f, m_dict[0].keys())    w.writerow(dict((fn,fn) for fn in m_dict[0].keys()))    w.writerows(m_dict)

【讨论】:

【参考方案6】:

除非我错过了什么,否则你只想做这样的事情......

f = open("somefile.csv")f.writelines("header_row")

将行写入文件的逻辑(您可能需要组织值并添加通信或管道等...)

f.close()

【讨论】:

虽然纪尧姆的回答更直接。【参考方案7】:

使用 pandas 和 sqlite3 可以轻松完成。延伸到 Cristian Ciupitu 的回答。

import sqlite3from glob import glob; from os.path import expanduserconn = sqlite3.connect(glob(expanduser("data/clients_data.sqlite"))[0])cursor = conn.cursor()

现在使用 pandas 读取表格并写入 csv。

clients = pd.read_sql("SELECT * FROM clients" ,conn)clients.to_csv("data/Clients100914.csv", index=False)

这样更直接,而且一直有效。

【讨论】:

【参考方案8】:

以下代码适用于带有 Python 3.6 的 Oracle:

import cx_Oracleimport csv# Create tnsdsn_tns=cx_Oracle.makedsn("", "", service_name="")# Connect to DB using user, password and tns settingsconn=cx_Oracle.connect(user="", password="",dsn=dsn_tns)c=conn.cursor()#Execute the Queryc.execute("select * from ")# Write results into CSV filewith open(".csv", "w", newline="") as csv_file:    csv_writer = csv.writer(csv_file)    csv_writer.writerow([i[0] for i in c.description]) # write headers    csv_writer.writerows(c)                                     

【讨论】:

别忘了调整arraysizeprefetchrows,参见cx_Oracle 调整文档:cx-oracle.readthedocs.io/en/latest/user_guide/…

以上是关于如何创建csv文件的主要内容,如果未能解决你的问题,请参考以下文章

Copyright © 2021 闽ICP备10200827号-10