file_name = "{}.{}".format(int(float(time.time()) * 1000), filesuffix)
时间: 2024-04-06 12:34:16 浏览: 8
这段代码是用来生成一个唯一的文件名,其中包含当前时间的毫秒数和指定的文件后缀。具体来说,它首先调用time.time()函数获取当前时间的时间戳(以秒为单位),然后将其乘以1000并转换为整数,得到当前时间的毫秒数。最后使用.format()方法将这个毫秒数和文件后缀组合成一个字符串,作为文件名返回。
相关问题
降低这段代码重复率:def readCSVFile(demand_file,depot_file,model): with open(demand_file,'r') as f: demand_reader=csv.DictReader(f) for row in demand_reader: demand = Demand() demand.id = int(row['id']) demand.x_coord = float(row['x_coord']) demand.y_coord = float(row['y_coord']) demand.demand = float(row['demand']) demand.start_time=float(row['start_time']) demand.end_time=float(row['end_time']) demand.service_time=float(row['service_time']) model.demand_dict[demand.id] = demand model.demand_id_list.append(demand.id) model.number_of_demands=len(model.demand_id_list) with open(depot_file, 'r') as f: depot_reader = csv.DictReader(f) for row in depot_reader: vehicle = Vehicle() vehicle.depot_id = row['depot_id'] vehicle.x_coord = float(row['x_coord']) vehicle.y_coord = float(row['y_coord']) vehicle.type = row['vehicle_type'] vehicle.capacity=float(row['vehicle_capacity']) vehicle.free_speed=float(row['vehicle_speed']) vehicle.numbers=float(row['number_of_vehicle']) vehicle.fixed_cost=float(row['fixed_cost']) vehicle.variable_cost=float(row['variable_cost']) vehicle.start_time=float(row['start_time']) vehicle.end_time=float(row['end_time']) model.vehicle_dict[vehicle.type] = vehicle model.vehicle_type_list.append(vehicle.type)
可以将读取 CSV 文件的代码提取出来,封装成一个函数,这样可以减少代码的重复率。可以这样来实现:
```
def readCSV(csv_file, model, obj_type):
with open(csv_file, 'r') as f:
csv_reader = csv.DictReader(f)
for row in csv_reader:
obj = obj_type()
for key, value in row.items():
setattr(obj, key, float(value) if value.replace('.', '', 1).isdigit() else value)
obj_id = getattr(obj, 'id', None)
if obj_id is not None:
model[obj_id] = obj
model['{}_id_list'.format(type(obj).__name__.lower())].append(obj_id)
model['number_of_{}s'.format(type(obj).__name__.lower())] = len(model['{}_id_list'.format(type(obj).__name__.lower())])
```
然后就可以这样来调用这个函数:
```
model = {'demand_dict': {}, 'vehicle_dict': {}}
readCSV(demand_file, model['demand_dict'], Demand)
readCSV(depot_file, model['vehicle_dict'], Vehicle)
```
这样就可以将原来的代码大大简化,减少重复率,同时可以让代码更加简洁易懂。
def schemaName_file_upload(request): if request.method in ["POST", "GET"]: msg = {"code": normal_code, "msg": "成功", "data": {}} file = request.FILES.get("file") if file: filename = file.name filesuffix = filename.split(".")[-1] file_name = "{}.{}".format(int(float(time.time()) * 1000), filesuffix) filePath = os.path.join(os.getcwd(), "templates/front", file_name) print("filePath===========>", filePath) with open(filePath, 'wb+') as destination: for chunk in file.chunks(): destination.write(chunk) msg["file"] = file_name req_dict = request.session.get("req_dict") type1 = req_dict.get("type", 0) print("type1=======>",type1) type1 = int(type1) if type1 == 1: params = {"name":"faceFile","value": file_name} config.createbyreq(config, config, params) if '是' in hasHadoop or 'spark' in hasHadoop: try: client = Client("http://127.0.0.1:50070/") client.upload(hdfs_path=f'/{file_name}', local_path=filePath, chunk_size=2 << 19, overwrite=True) except Exception as e: print(f"hdfs upload error : {e}") return JsonResponse(msg)具体注释
这段代码定义了一个视图函数 `schemaName_file_upload`,用于处理上传文件的请求。如果请求的方法是 POST 或 GET,就会返回一个 JSON 格式的响应,其中包含一个 code 码、一个 msg 信息以及一个 data 数据字段。
在函数中,首先获取上传的文件对象,然后获取文件名和文件后缀。接着,生成一个新的文件名,新文件名由当前时间戳与文件后缀组成。然后,将新文件名与当前工作目录拼接成文件路径,最后将上传的文件写入到该路径下。
如果上传的文件类型为人脸识别类型,就会创建一个新的配置文件,将文件名加入到配置文件中。如果系统中存在 Hadoop 或 Spark 等大数据处理框架,就会将文件上传至 HDFS 文件系统中。
最后,返回一个 JSON 格式的响应,其中包含上传成功或失败的信息以及上传的文件名。