使用Python同时下载文件并插入MySQL数据库
我正在用urllib2下载比较大的文件(每个大约10MB),然后把它当作json文件加载,并把数据插入到mysql数据库中,然后在一个无限循环中重复这个过程。下载大约需要一分钟,然后再把所有内容加载到mysql里。有没有办法用python创建一个线程,让它在主线程插入mysql的同时进行下载呢?
我的伪代码:
while 1:
download file with urllib2
decode as json file
extract data I want
do some computations on data
insert data into mysql
非常感谢!
1 个回答
2
你可以使用线程和队列来解决这个问题。可以创建一个文件输入输出的线程,它负责读取和处理文件,然后把结果放入一个队列里。接着,另一个数据库输入输出的线程会从这个队列中取出结果并进行处理。为了让你更好理解,我不打算写代码示例,而是给你一个链接,你可以在这里找到相关信息: http://www.ibm.com/developerworks/aix/library/au-threadingpython/
另外,你也可以使用Python的 select
模块来管理多个文件读取操作,等一个操作完成后再处理下一个。你可以在这里查看相关文档: http://docs.python.org/library/select.html