54 lines
2.5 KiB
Python
54 lines
2.5 KiB
Python
|
|
import os
|
||
|
|
import time
|
||
|
|
|
||
|
|
import pymysql
|
||
|
|
|
||
|
|
target_paths = ['F:/jd_data', 'G:/jd_data']
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
db = pymysql.connect(host='39.101.194.63', port=23306,
|
||
|
|
user='root', passwd='passok123A', db='jd_data', charset='utf8mb4')
|
||
|
|
cursor = db.cursor()
|
||
|
|
count = 0
|
||
|
|
for target_path in target_paths:
|
||
|
|
for file_name in os.listdir(target_path):
|
||
|
|
count += 1
|
||
|
|
hierarchy = file_name.replace(".zip", "").split(" + ")
|
||
|
|
experiment = hierarchy[0]
|
||
|
|
variable = hierarchy[1]
|
||
|
|
model = hierarchy[2]
|
||
|
|
sql_select = "SELECT id, experiment, variable, model, level, data_size, downloaded_time " \
|
||
|
|
"FROM jd_data.data_detail " \
|
||
|
|
"WHERE experiment = '{}' AND variable = '{}' AND model = '{}'".format(experiment, variable, model)
|
||
|
|
cursor.execute(sql_select)
|
||
|
|
result = cursor.fetchall()
|
||
|
|
total_num = len(result)
|
||
|
|
if total_num == 1:
|
||
|
|
row = result[0]
|
||
|
|
row_id = row[0]
|
||
|
|
experiment = row[1]
|
||
|
|
variable = row[2]
|
||
|
|
model = row[3]
|
||
|
|
level = row[4]
|
||
|
|
data_size = row[5]
|
||
|
|
downloaded_time = row[6]
|
||
|
|
f_size = os.path.getsize("/".join([target_path, file_name]))
|
||
|
|
if f_size >= data_size:
|
||
|
|
print("[No. {}] {}校验通过,文件大小符合".format(str(count), file_name))
|
||
|
|
if f_size != data_size:
|
||
|
|
print("-------------------- id: {}, f_size={}, data_size={} --------------------".format(row_id, f_size, data_size))
|
||
|
|
# if downloaded_time is None:
|
||
|
|
# f_mtime = os.path.getmtime("/".join([target_path, file_name]))
|
||
|
|
# f_mtime_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(f_mtime))
|
||
|
|
# sql_update = "UPDATE jd_data.data_detail " \
|
||
|
|
# "SET downloaded_time = '{}' WHERE id = '{}';".format(f_mtime_str, row_id)
|
||
|
|
# cursor.execute(sql_update)
|
||
|
|
# db.commit()
|
||
|
|
else:
|
||
|
|
print("{}校验不通过,文件大小不够".format(file_name))
|
||
|
|
sql_update = "UPDATE jd_data.data_detail " \
|
||
|
|
"SET downloaded = 0, downloaded_time = null WHERE id = '{}';".format(row_id)
|
||
|
|
cursor.execute(sql_update)
|
||
|
|
db.commit()
|
||
|
|
|
||
|
|
db.close()
|