如何以表格形式在文件中写入数据

时间:2014-03-07 10:19:39

标签: python python-2.7 file

我正在使用python 2.7我想在文件中以表格形式将数据写入文件。表包含三列。此文件将由不同的应用程序访问。因此,此文件将保留在系统中。

我必须同时读写数据。因此,数据应该像sql数据库一样容易访问。

3 个答案:

答案 0 :(得分:4)

使用SQLite

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语句,例如UPDATESETDELETE

<强>读

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'])

结果:

  

垃圾邮件垃圾邮件垃圾邮件垃圾邮件|焗豆|

     垃圾邮件|可爱的垃圾邮件| |精彩的垃圾邮件|

<强>载入

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(';'))