如何在Python中快速搜索.csv文件

Ice*_*ack 4 python csv dictionary large-files

我正在用Python读取600万条.csv文件,我希望能够在这个文件中搜索特定的条目.

搜索整个文件有什么技巧吗?你应该把整篇文章读成字典还是每次都要进行搜索?我尝试将它加载到字典中,但这花了很长时间,所以我每次都在搜索整个文件,这似乎很浪费.

我是否可以利用该列表按字母顺序排列?(例如,如果搜索词以"b"开头,我只从包含以"b"开头的第一个单词的行搜索到包含以"b"开头的最后一个单词的行

我正在使用import csv.

(一个附带问题:可以csv转到文件中的特定行吗?我想让程序以随机​​行开始)

编辑:我已经将列表的副本作为.sql文件,我怎么能在Python中实现它?

Jim*_*imB 7

如果csv文件没有更改,请将其加载到数据库中,以便快速轻松地进行搜索.如果您不熟悉SQL,那么您需要了解它.

这是从csv插入sqlite表的粗略示例.示例csv是';' 分隔,并有2列.

import csv
import sqlite3

con = sqlite3.Connection('newdb.sqlite')
cur = con.cursor()
cur.execute('CREATE TABLE "stuff" ("one" varchar(12), "two" varchar(12));')

f = open('stuff.csv')
csv_reader = csv.reader(f, delimiter=';')

cur.executemany('INSERT INTO stuff VALUES (?, ?)', csv_reader)
cur.close()
con.commit()
con.close()
f.close()
Run Code Online (Sandbox Code Playgroud)

  • @Baldur - 这不是perl vs python的问题,你的问题是你反复阅读一个大文件.Perl和python会以同样的方式完成它.数据库只为您提供了更好的索引和搜索界面. (2认同)