我正在使用python 2.7我想在文件中以表格形式将数据写入文件。表包含三列。此文件将由不同的应用程序访问。因此,此文件将保留在系统中。
我必须同时读写数据。因此,数据应该像sql数据库一样容易访问。
答案 0 :(得分:4)
sqlite3模块将sql表存储在一个文件中,而不需要像mySQL那样访问Web服务器。
<强>编写强>
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模块允许您读写列表和表。它是几乎所有电子表格应用程序和编程语言都支持的标准格式。
<强>编写强>
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'])
结果:
垃圾邮件垃圾邮件垃圾邮件垃圾邮件|焗豆|
垃圾邮件|可爱的垃圾邮件| |精彩的垃圾邮件|
<强>载入强>
import csv
with open('eggs.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
print ', '.join(row)
打印:
垃圾邮件,垃圾邮件,垃圾邮件,垃圾邮件,垃圾邮件,焗豆
垃圾邮件,可爱垃圾邮件,精彩垃圾邮件
答案 1 :(得分:1)
csv模块实现了以CSV格式读取和写入表格数据的类。它允许程序员说“以Excel首选格式编写此数据”或“从Excel生成的此文件中读取数据”,而不知道Excel使用的CSV格式的精确细节。程序员还可以描述其他应用程序理解的CSV格式或定义自己的专用CSV格式。
csv模块的读写器对象读写序列。程序员还可以使用DictReader和DictWriter类以字典形式读取和写入数据。
答案 2 :(得分: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(';'))