如何将数据以表格形式写入文件
我正在使用Python 2.7,我想把数据写入一个文件,格式是表格。这个表格有三列。而且这个文件会被不同的应用程序访问,所以它会一直保留在系统里。
我需要同时读取和写入数据。因此,数据应该像SQL数据库那样容易访问。
3 个回答
0
写入数据
myList = [['1', '2', '3'], ['4', '5', '6']]
with open('/home/XXXX/whatever.txt', 'w') as file:
for row in myList:
file.write(';'.join(row))
file.write('\n')
读取数据
myList2 = list()
with open('/home/XXXX/whatever.txt', 'r') as file:
for row in file.read().splitlines():
myList2.append(row.split(';'))
1
csv模块是用来处理表格数据的,特别是CSV格式的数据。简单来说,它让程序员可以很方便地说:“把这些数据写成Excel喜欢的格式”或者“从这个Excel生成的文件里读取数据”,而不需要了解Excel具体使用的CSV格式的细节。程序员还可以描述其他应用程序能理解的CSV格式,或者定义自己特定用途的CSV格式。
csv模块里的读取器和写入器可以处理数据序列。程序员也可以使用DictReader和DictWriter类以字典的形式来读取和写入数据。
4
使用SQLite
sqlite3模块可以把SQL表格存储在一个文件里,不像mySQL那样需要一个网络服务器来访问。
写入数据
c = conn.cursor()
# Create table
c.execute('''CREATE TABLE stocks
(date text, trans text, symbol text, qty real, price real)''')
# Insert a row of data
c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")
# Save (commit) the changes
conn.commit()
如果你想修改或删除数据,可以使用一些常见的SQL语句,比如 UPDATE
(更新)、SET
(设置)和 DELETE
(删除)。
读取数据
t = ('RHAT',)
c.execute('SELECT * FROM stocks WHERE symbol=?', t)
print c.fetchone()
关闭连接
# We can also close the connection if we are done with it.
# Just be sure any changes have been committed or they will be lost.
conn.close()
使用CSV
csv模块让你可以读取和写入列表和表格。这是一种标准格式,几乎所有的电子表格软件和编程语言都支持。
写入数据
import csv
with open('eggs.csv', 'wb') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=' ',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
结果是:
Spam Spam Spam Spam Spam |Baked Beans|
Spam |Lovely Spam| |Wonderful Spam|
加载数据
import csv
with open('eggs.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
print ', '.join(row)
打印结果是:
Spam, Spam, Spam, Spam, Spam, Baked Beans
Spam, Lovely Spam, Wonderful Spam