擅长:python、mysql、java
<p>您可以使用sqlite3内置模块进行数据操作。您还可以提供特殊名称“:memory:”insted“c:/temp/example”在RAM中创建数据库。如果不存储在RAM中,则限制硬盘的可用空间。在</p>
<pre><code>import sqlite3
from collections import defaultdict
downloadsByExtensionCount = defaultdict(int)
# downloadsByExtensionList = []
logFiles = ['file1.log', 'file2.log', 'file3.log', 'file4.log']
conn = sqlite3.connect('c:/temp/example')
c = conn.cursor()
# Create table
c.execute('create table if not exists logs(date, time, c_ip, cs_method, s_port, cs_uri_stem, cs_user_agent)')
for logFile in logFiles:
try:
log = open(logFile, 'rb')#, encoding='utf-8')
except IOError, e:
continue
logLines = log.readlines()
for logLine in logLines:
date, time, c_ip, cs_method, s_port, cs_uri_stem, cs_user_agent = logLine.split(" ")
downloadsByExtensionCount[cs_uri_stem] += 1
c.execute(
'insert into logs(date, time, c_ip, cs_method, s_port, cs_uri_stem, cs_user_agent) values(?,?,?,?,?,?,?)',
(date, time, c_ip, cs_method, s_port, cs_uri_stem, cs_user_agent)
)
conn.commit()
conn.close()
</code></pre>