之前把爬虫爬取的源文件都存在了一个文件夹,有一百多万个,现在要读取,直接用 os.walk(path) 这种方式,几个小时了还卡在这一步,有没有其他的方式可以快速的读取
1
cheneydog May 5, 2017 ls /xxx >list
|
2
sheep3 May 5, 2017
```
import subprocess cat = subprocess.Popen(["ll",], stdout=subprocess.PIPE) for line in cat.stdout: print line ``` |
3
dsg001 May 5, 2017
```
import glob for file in glob.iglob('path'): print(file) ''' |
4
minbaby May 5, 2017
一看楼上就是没有遇到过几百万文件在一个目录的情况,之前遇到过(因为 crontab 用了 wget 导致的),用 ls 命令已经不好使了,这个时候只能通过文件名字的规律来处理了,比如文件名是五位数字,可以试试 ls 11* 这种方式缩小每次读取的文件数量
|
5
rrfeng May 5, 2017 ls -U
|
6
Osk May 5, 2017 $ time ls -U | wc -l
5973243 real 0m2.330s user 0m1.743s sys 0m0.790s 不用-U 要 24 秒多 |
8
Ouyangan May 5, 2017
100 万 , 真刺激
|
9
lxf1992521 May 5, 2017
find > a 生成索引,在使用 python 去处理一个几百万行的文本即可。
|
10
dbj1991 OP |
12
ihciah May 6, 2017
想起某童鞋经历过的 inode 用完的情况。。。。
|