话不多说,直接上代码
#带界面控制
import time
from tkinter import filedialog
import tkinter as tk
import logging
import requests
import csv
import json
import os
import threading
logger = logging.getLogger(__name__)
logger.setLevel(level = logging.INFO)
handler = logging.FileHandler("log.txt")
handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
console = logging.StreamHandler()
console.setLevel(logging.INFO)
logger.addHandler(handler)
logger.addHandler(console)
def remove(path):#判断有已生成的文件,如果有就删除
try:
os.remove(path)
except Exception as r:
logger.info ('没有这个文件:%s' % path)
headers={
'user-agent': 'Mozilla/5.0 (Linux; Android 10; YAL-AL10 Build/HUAWEIYAL-AL10; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/81.0.4044.138 Mobile Safari/537.36 lizan-app/android/1.0.00 Html5Plus/1.0',
'Content-Type': 'application/json; charset=utf-8',
'Content-Length': '51',
'Host': 'csg.lizanstar.cn',
'Connection': 'Keep-Alive',
'Accept-Encoding': 'gzip'
}
def setnum(i,system):#获取token并且写入csv文件
id = i[0]
address = i[1]
# print(x,y)
url = 'https://*******************t?userId=' + str(id) + '&scenceId='+system
# print(url)
tkdate = requests.post(url)
print(tkdate.text)
try:
getdata = json.loads(tkdate.text)
# print(type(getdata))
token = (getdata.get('data').get('token'))
# print(token)
with open(savepath, "a+",newline='') as f: # newline参数控制行之间是否空行,不加会导致隔一行有一个空格
f_csv = csv.writer(f)
f_csv.writerow([id, token, address])#数组格式写入文件
except Exception as e:
# print(getdata)
logger.error('链接:'+url+'---'+str(tkdate.text)+'-----'+str(e))
if __name__ == '__main__':
root = tk.Tk()
root.withdraw()
print('请选择你的源文件..........')
time.sleep(1)
file_open = filedialog.askopenfilename() # 打开的文件路径
#file_open = open('C:\\Users\\*************\\user_id&addressid(1).csv')
savepath = 'pythonAPPtoken.csv'
remove(savepath) # 每次都会创建文件重新生成文件
cont=open(file_open,'r')
reader = csv.reader(cont)
# print(reader)
# for i in reader:
# print(i)
a='''
请输入你要生成的系统,以阿拉伯数字代替
1、公众号
2、小程序
3、APP
输入完成后请按回车运行
'''
system=input(a)
for i in list(reader):
logger.info(i)
try:
t = threading.Thread(target=setnum, name='线程1',args=(i,system,))#args后边需要加入 ,
t.start()
except Exception as e:
logger.error('线程报错'+str(e))