爬取twitter資料產生了如下文件,我是根據使用者id來爬取的資料,所得到的檔名也設定為使用者的id_tweets,所有檔案放在了乙個資料夾下。
而我用來抓取資料的id放在了乙個csv檔案下。現在要做的就是匯入這個資料夾下的已經爬取的使用者id號與csv下的所有的使用者id號來進行對比,找出其中沒有被爬取的使用者id,進而再次進行爬取。
用python實現以上過程,程式如下:
# coding=utf-8
function recfilename
功能:得到資料夾中檔名組成的列表
輸入:輸出:
l:檔名組成的列表
import os
import csv
import re
import numpy as np
l =
n =
def recfilename(file_dir):
for root, dirs, files in os.walk(file_dir):
for filename in files:
# if os.path.splitext(file)[1] == '.jpeg':
# 將字串傳喚成整型
def scvfilename(file_dir):
with open(file_dir, 'rb') as f:
id = csv.reader(f)
for row in id:
# if os.path.splitext(file)[1] == '.jpeg':
if __name__ == '__main__':
# scvfilename('e:/file/twitteruserid7118.csv')
# recfilename('e:/file/6416')
c =
scvfilename('e:/file/twitteruserid7118.csv')
recfilename('e:/file/6416')
print ('l', l)
print ('n', n)
c = list(set(n).difference(set(l)))
print ('c', c)
for j in c:
print j
首先定義了兩個全域性變數ln用來存放資料的陣列
然後分別定義了兩個方法,其中recfilename用來讀入已經爬取的使用者id到陣列l中,scvfilename用來讀入csv檔案中的所有使用者的id號到陣列n中。
之後再定義乙個陣列c,用指令 c = list(set(n).difference(set(l)))將陣列n與陣列l比較後的資料傳入到c中。
由於傳入c中的資料我還有拿來重新抓取資料,所以我將輸出的c的資料按列輸出,即print j,然後再將所輸出的使用者id複製到csv文件中,當然這後續的步驟動動滑鼠就可以自行完成了。
找出兩個List 中不同的元素
public class collectionutil 找出兩個集合中不同的元素 param collmax param collmin return public static collection getdifferent collection collmax,collection collmi...
找出不同的兩個數
有一組數,只有兩個不同的數,其他的數都有乙個相同的數,a1,a1,a2,a2,a3,a3,a4,a4,b,c,a5,a5.找出b,c.把陣列分成兩組a1,a1,a2,a2,b,和 a3,a3,a4,a4,c,然後,分別各自異或,即可得到b,c include using namespace std ...
高效的找出兩個List中的不同元素
千萬不要採用這種方法,總共要迴圈的次數是兩個list的size相乘的積,從輸出看耗時也是比較長的,那麼我們有沒有其他的方法呢?當然有.無需解釋這個耗時是必然的,那麼我們還有沒有更好的辦法呢?仔細分析以上兩個方法中我都做了mxn次迴圈,其實完全沒有必要迴圈這麼多次,我們的需求是找出兩個list中的不同...