一 **** 命令行工具参数读取测试提取
def start():
if len(sys.argv)==7:
opts, args = getopt.getopt(sys.argv[1:], "u:t:d")
for k, vin opts:
if k=='-u':
url=v
elif k=='-t':
thread=v
elif k=='-d':
dic=v
print('url'+url)
print('thread'+thread)
print('dic'+dic)
else:
print('Error Argument!')
sys.exit()
start()
控制台输出显示
二 ***** 字典文件的读取
dir.txt 文件中的内容易烊千玺
张艺兴
周震南
李希侃
张颜齐
姚琛
刘宇忻
张歆艺
张予曦
张馨予
张涵予
张花花
张草草
黄永欣
华明杰
魔动闪霸
#函数判断参数长度并且进行输出 -u -t -d 的内容
def start():
if len(sys.argv)==7:
opts, args = getopt.getopt(sys.argv[1:], "u:t:d:")
for k, vin opts:
if k=='-u':
url=v
elif k=='-t':
thread=v
elif k=='-d':
dic=v
multi_args(url,thread,dic)
else:
print('Error Argument!')
sys.exit()
def multi_args(url,thread,dic):
result_list=[]
with open(dic,'r',encoding='utf8')as f:
read_lines=f.readlines()
#每个线程读取的行数
result=math.ceil(len(read_lines)/int(thread))
i=0
temp_list=[]
for linein read_lines:
i=i+1
if i%result==0:
result_list.append(temp_list)
temp_list=[]
else:
temp_list.append(line.strip())
print(result_list)
multi_args('http://127.0.0.1/',5,'dir.txt')
控制台输出结果
D:\python\my_flask\Scripts\python.exe D:/Flask项目设计/my_flask/ch1/tencent_test.py
[['易烊千玺', '张艺兴', '周震南'], ['张颜齐', '姚琛', '刘宇忻'], ['张予曦', '张馨予', '张涵予'], ['张草草', '黄永欣', '华明杰']]
三 ***** 线程操作
#函数判断参数长度并且进行输出 -u -t -d 的内容
def start():
if len(sys.argv)==7:
opts, args = getopt.getopt(sys.argv[1:], "u:t:d:")
for k, vin opts:
if k=='-u':
url=v
elif k=='-t':
thread=v
elif k=='-d':
dic=v
multi_args(url,thread,dic)
else:
print('Error Argument!')
sys.exit()
def multi_args(url,thread,dic):
result_list=[]
with open(dic,'r',encoding='utf8')as f:
read_lines=f.readlines()
#每个线程读取的行数
result=math.ceil(len(read_lines)/int(thread))
i=0
temp_list=[]
for linein read_lines:
i=i+1
if i%result==0:
result_list.append(temp_list)
temp_list=[]
else:
temp_list.append(line.strip())
print(result_list)
#循环遍历文档中的内容
for i in result_list:
#将线程追加到列表中
temp_list.append(threading.Thread(target=scan,args=(url,i)))
for tin temp_list:
t.start()
def scan(url,dic):
for line in dic:
r=requests.get(url+'/'+line)
if r.status_code==200:
print(r.url+' : '+str(r.status_code))
scan('http://127.0.0.1/','dir.txt')
控制台输出结果
网友评论