使用Python同时下载文件并插入MySQL数据库

2 投票
1 回答
533 浏览
提问于 2025-04-17 10:35

我正在用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

撰写回答