本地图片先压缩,再上传

本地图片先压缩,再上传

叠1压缩

folder_zip_cut1_demo.py

import os
import shutil
import zipfile
import datetime# 源目录
source_dir = 'H:\\CCD叠一对齐度图片\\效果图\\'
# 日志文件路径
log_file_path = 'D:\\software\\dcs_log\\{}_folder_zip_cut1.log'.format(datetime.datetime.now().strftime('%Y-%m-%d'))# 记录开始时间
start_time = datetime.datetime.now()# 写入开始时间到日志文件
with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write('开始时间: {}\n'.format(start_time))def get_today_str():today = datetime.datetime.now()today_str = today.strftime("%Y-%m-%d")return today_str# 遍历源目录下的所有文件和文件夹
for root, dirs, files in os.walk(source_dir):# 计算当前目录相对于源目录的层级level = root.replace(source_dir, '').count(os.sep)# 只处理5级子目录if level == 2:# 获取当前5级子目录的完整路径sub_dir_path = root# 压缩文件名(不包含路径)zip_file_name = os.path.basename(sub_dir_path) + '.zip'# 压缩文件完整路径(当前目录下)zip_file_path = os.path.join(os.path.dirname(sub_dir_path), zip_file_name)# 压缩当前5级子目录with zipfile.ZipFile(zip_file_path, 'w', zipfile.ZIP_DEFLATED) as zipf:for dirpath, dirnames, filenames in os.walk(sub_dir_path):if dirpath.find(get_today_str()) > 0:# print(f" 退出 dirpath {dirpath}")with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write('退出 dirpath {}\n'.format(dirpath))continuefor filename in filenames:file_path = os.path.join(dirpath, filename)arcname = os.path.relpath(file_path, start=sub_dir_path)zipf.write(file_path, arcname)# 删除原始5级子目录shutil.rmtree(sub_dir_path)# 打印进度(可选)print(f'已压缩并删除: {sub_dir_path}')# 写入开始时间到日志文件# 上传时间upload_time = datetime.datetime.now()with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write('已压缩并删除: {} {}\n'.format(sub_dir_path,upload_time))# 记录结束时间
end_time = datetime.datetime.now()# 写入结束时间到日志文件
with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write('结束时间: {}\n'.format(end_time))print(f'日志已保存到: {log_file_path}')

叠2压缩

folder_zip_cut2_demo.py

import os
import shutil
import zipfile
import datetime# 源目录
source_dir = 'I:\\CCD叠二对齐度图片\\效果图\\'
# 日志文件路径
log_file_path = 'D:\\software\\dcs_log\\{}_folder_zip_cut2.log'.format(datetime.datetime.now().strftime('%Y-%m-%d'))# 记录开始时间
start_time = datetime.datetime.now()# 写入开始时间到日志文件
with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write('开始时间: {}\n'.format(start_time))def get_today_str():today = datetime.datetime.now()today_str = today.strftime("%Y-%m-%d")return today_str# 遍历源目录下的所有文件和文件夹
for root, dirs, files in os.walk(source_dir):# 计算当前目录相对于源目录的层级level = root.replace(source_dir, '').count(os.sep)# 只处理5级子目录if level == 2:# 获取当前5级子目录的完整路径sub_dir_path = root# 压缩文件名(不包含路径)zip_file_name = os.path.basename(sub_dir_path) + '.zip'# 压缩文件完整路径(当前目录下)zip_file_path = os.path.join(os.path.dirname(sub_dir_path), zip_file_name)# 压缩当前5级子目录with zipfile.ZipFile(zip_file_path, 'w', zipfile.ZIP_DEFLATED) as zipf:for dirpath, dirnames, filenames in os.walk(sub_dir_path):if dirpath.find(get_today_str()) > 0:# print(f" 退出 dirpath {dirpath}")with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write('退出 dirpath {}\n'.format(dirpath))continuefor filename in filenames:file_path = os.path.join(dirpath, filename)arcname = os.path.relpath(file_path, start=sub_dir_path)zipf.write(file_path, arcname)# 删除原始5级子目录shutil.rmtree(sub_dir_path)# 打印进度(可选)print(f'已压缩并删除: {sub_dir_path}')# 写入开始时间到日志文件# 上传时间upload_time = datetime.datetime.now()with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write('已压缩并删除: {} {}\n'.format(sub_dir_path,upload_time))# 记录结束时间
end_time = datetime.datetime.now()# 写入结束时间到日志文件
with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write('结束时间: {}\n'.format(end_time))print(f'日志已保存到: {log_file_path}')

叠3压缩

folder_zip_cut3_demo.py

import os
import shutil
import zipfile
import datetime# 源目录
source_dir = 'J:\\CCD叠三对齐度图片\\效果图\\'
# 日志文件路径
log_file_path = 'D:\\software\\dcs_log\\{}_folder_zip_cut3.log'.format(datetime.datetime.now().strftime('%Y-%m-%d'))# 记录开始时间
start_time = datetime.datetime.now()# 写入开始时间到日志文件
with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write('开始时间: {}\n'.format(start_time))def get_today_str():today = datetime.datetime.now()today_str = today.strftime("%Y-%m-%d")return today_str# 遍历源目录下的所有文件和文件夹
for root, dirs, files in os.walk(source_dir):# 计算当前目录相对于源目录的层级level = root.replace(source_dir, '').count(os.sep)# 只处理5级子目录if level == 2:# 获取当前5级子目录的完整路径sub_dir_path = root# 压缩文件名(不包含路径)zip_file_name = os.path.basename(sub_dir_path) + '.zip'# 压缩文件完整路径(当前目录下)zip_file_path = os.path.join(os.path.dirname(sub_dir_path), zip_file_name)# 压缩当前5级子目录with zipfile.ZipFile(zip_file_path, 'w', zipfile.ZIP_DEFLATED) as zipf:for dirpath, dirnames, filenames in os.walk(sub_dir_path):if dirpath.find(get_today_str()) > 0:# print(f" 退出 dirpath {dirpath}")with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write('退出 dirpath {}\n'.format(dirpath))continuefor filename in filenames:file_path = os.path.join(dirpath, filename)arcname = os.path.relpath(file_path, start=sub_dir_path)zipf.write(file_path, arcname)# 删除原始5级子目录shutil.rmtree(sub_dir_path)# 打印进度(可选)print(f'已压缩并删除: {sub_dir_path}')# 写入开始时间到日志文件# 上传时间upload_time = datetime.datetime.now()with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write('已压缩并删除: {} {}\n'.format(sub_dir_path,upload_time))# 记录结束时间
end_time = datetime.datetime.now()# 写入结束时间到日志文件
with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write('结束时间: {}\n'.format(end_time))print(f'日志已保存到: {log_file_path}')

叠1 文件上传

zip_folder_upload_delete_move_cut1.py

"""
遍历目录文件夹I:\CCD叠二对齐度图片\效果图test\下5级子目录的zip文件,上传到FTP服务器
1.FTP服务器设置如下ftp_server = 'nas01.hzccd.svolt.cn'ftp_username = 'C11QD'ftp_password = 'Svolt@2023'
1.ftp路径对应于路径 “/1901/C11/赢合/6#/test18/”+本地压缩文件的相对路径,路径不存在则创建,用python实现上传逻辑,
2.对每个压缩文件上传的开始时间,结束时间,输出日志到D:\software\dcs_log ,日志文件格式:日期+cut2_ftp_zip_folder.log
3.上传成功的文件备份到I:\已上传_CCD叠二对齐度图片\效果图test\+源文件的相对路径,然后再把上传成功的文件删除报错:文件 xxx.zip 上传失败: 550 [2: No such file or directory] error calling getattr API.
"""import os
import ftplib
from datetime import datetimeredis_host = "localhost"
redis_port = 6379
redis_db = 9
import redis
r = redis.StrictRedis(host=redis_host, port=redis_port, db=redis_db, decode_responses=True)def get_num_from_equipment_code(equipment_code):equipment_code_len = len(equipment_code)str_myneed = equipment_code[equipment_code_len-2:]int_myneed = int(str_myneed)str_myneed = str(int_myneed)str_myneed += "#"return str_myneedEquipmentCode = r.get("EquipmentCode_lineEdit")
EquipmentCode_num = get_num_from_equipment_code(EquipmentCode)# FTP服务器设置
ftp_server = 'nas01.hzccd.svolt.cn'
ftp_username = 'C11QD'
ftp_password = 'Svolt@2023'
ftp_base_path = '/1901/C11/赢合/"+EquipmentCode_num+"/Image_zip/CCD叠一对齐度图片/效果图/'# 本地目录设置
local_base_dir = 'H:\\CCD叠一对齐度图片\\效果图\\'
log_dir = 'D:\\software\\dcs_log\\'
backup_dir = 'H:\\已上传_CCD叠一对齐度图片\\效果图\\'# 创建日志文件路径
today = datetime.now().strftime('%Y-%m-%d')
log_file_path = os.path.join(log_dir, f'{today}_cut1_zip_folder_upload_and_move_and_del.log')# 确保日志文件目录存在
if not os.path.exists(log_dir):os.makedirs(log_dir)def create_remote_dir(ftp, remote_path):# 递归创建远程目录dirs = remote_path.split('/')current_remote_dir = ''for dir_name in dirs:if dir_name:  # 避免末尾的空字符串current_remote_dir += '/' + dir_nametry:ftp.mkd(current_remote_dir)except ftplib.all_errors as e:if "550" not in str(e):  # 如果不是目录已存在的错误,则抛出异常raise# 遍历本地目录中的压缩文件(包括5级子目录)
def traverse_and_upload(root_dir, ftp_path):for dirpath, dirnames, filenames in os.walk(root_dir):# 只遍历到5级子目录if len(dirpath.split('\\')) - len(root_dir.split('\\')) > 4:continuefor filename in filenames:if filename.endswith('.zip'):local_file_path = os.path.join(dirpath, filename)rel_path = os.path.relpath(dirpath, local_base_dir)ftp_full_path = ftp_path + rel_path + '/' + filenameftp_full_path = ftp_full_path.replace("\\", "/")# 写入日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'local_file_path {local_file_path} \n')log_file.write(f'rel_path {rel_path} \n')log_file.write(f'ftp_full_path {ftp_full_path} \n')try:with ftplib.FTP(ftp_server, ftp_username, ftp_password) as ftp:ftp.encoding = "gb2312"# 切换到被动模式(如果需要)ftp.set_pasv(True)# 创建FTP目录(如果不存在)remote_dir = ftp_full_path.rsplit('/', 1)[0]remote_dir = remote_dir.replace("\\", "/")create_remote_dir(ftp, remote_dir)# 写入日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'remote_dir {remote_dir} \n')# if not any(dir for dir in ftp.nlst(remote_dir) if ftp.voidcmd(f'CWD {dir}') == 250):#     ftp.mkd(remote_dir)# 开始上传文件并记录时间start_time = datetime.now()with open(local_file_path, 'rb') as f:ftp.storbinary(f'STOR {ftp_full_path}', f)end_time = datetime.now()# 写入日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'文件 {filename} 上传成功,开始时间: {start_time}, 结束时间: {end_time}\n')# 备份并删除文件backup_path = os.path.join(backup_dir, rel_path, filename)os.makedirs(os.path.dirname(backup_path), exist_ok=True)os.replace(local_file_path, backup_path)except ftplib.all_errors as e:# 写入FTP错误到日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'文件 {filename} 上传失败: {e}\n')except Exception as e:# 写入通用错误到日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'处理文件 {filename} 时发生未知错误: {e}\n')# 开始遍历和上传traverse_and_upload(local_base_dir, ftp_base_path)print('处理完成。')

叠2 文件上传

zip_folder_upload_delete_move_cut2.py

"""
遍历目录文件夹I:\CCD叠二对齐度图片\效果图test\下5级子目录的zip文件,上传到FTP服务器
1.FTP服务器设置如下ftp_server = 'nas01.hzccd.svolt.cn'ftp_username = 'C11QD'ftp_password = 'Svolt@2023'
1.ftp路径对应于路径 “/1901/C11/赢合/6#/test18/”+本地压缩文件的相对路径,路径不存在则创建,用python实现上传逻辑,
2.对每个压缩文件上传的开始时间,结束时间,输出日志到D:\software\dcs_log ,日志文件格式:日期+cut2_ftp_zip_folder.log
3.上传成功的文件备份到I:\已上传_CCD叠二对齐度图片\效果图test\+源文件的相对路径,然后再把上传成功的文件删除报错:文件 xxx.zip 上传失败: 550 [2: No such file or directory] error calling getattr API.
"""import os
import ftplib
from datetime import datetimeredis_host = "localhost"
redis_port = 6379
redis_db = 9
import redis
r = redis.StrictRedis(host=redis_host, port=redis_port, db=redis_db, decode_responses=True)def get_num_from_equipment_code(equipment_code):equipment_code_len = len(equipment_code)str_myneed = equipment_code[equipment_code_len-2:]int_myneed = int(str_myneed)str_myneed = str(int_myneed)str_myneed += "#"return str_myneedEquipmentCode = r.get("EquipmentCode_lineEdit")
EquipmentCode_num = get_num_from_equipment_code(EquipmentCode)# FTP服务器设置
ftp_server = 'nas01.hzccd.svolt.cn'
ftp_username = 'C11QD'
ftp_password = 'Svolt@2023'
ftp_base_path = '/1901/C11/赢合/"+EquipmentCode_num+"/Image_zip/CCD叠二对齐度图片/效果图/'# 本地目录设置
local_base_dir = 'I:\\CCD叠二对齐度图片\\效果图\\'
log_dir = 'D:\\software\\dcs_log\\'
backup_dir = 'I:\\已上传_CCD叠二对齐度图片\\效果图\\'# 创建日志文件路径
today = datetime.now().strftime('%Y-%m-%d')
log_file_path = os.path.join(log_dir, f'{today}_cut2_zip_folder_upload_and_move_and_del.log')# 确保日志文件目录存在
if not os.path.exists(log_dir):os.makedirs(log_dir)def create_remote_dir(ftp, remote_path):# 递归创建远程目录dirs = remote_path.split('/')current_remote_dir = ''for dir_name in dirs:if dir_name:  # 避免末尾的空字符串current_remote_dir += '/' + dir_nametry:ftp.mkd(current_remote_dir)except ftplib.all_errors as e:if "550" not in str(e):  # 如果不是目录已存在的错误,则抛出异常raise# 遍历本地目录中的压缩文件(包括5级子目录)
def traverse_and_upload(root_dir, ftp_path):for dirpath, dirnames, filenames in os.walk(root_dir):# 只遍历到5级子目录if len(dirpath.split('\\')) - len(root_dir.split('\\')) > 4:continuefor filename in filenames:if filename.endswith('.zip'):local_file_path = os.path.join(dirpath, filename)rel_path = os.path.relpath(dirpath, local_base_dir)ftp_full_path = ftp_path + rel_path + '/' + filenameftp_full_path = ftp_full_path.replace("\\", "/")# 写入日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'local_file_path {local_file_path} \n')log_file.write(f'rel_path {rel_path} \n')log_file.write(f'ftp_full_path {ftp_full_path} \n')try:with ftplib.FTP(ftp_server, ftp_username, ftp_password) as ftp:ftp.encoding = "gb2312"# 切换到被动模式(如果需要)ftp.set_pasv(True)# 创建FTP目录(如果不存在)remote_dir = ftp_full_path.rsplit('/', 1)[0]remote_dir = remote_dir.replace("\\", "/")create_remote_dir(ftp, remote_dir)# 写入日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'remote_dir {remote_dir} \n')# if not any(dir for dir in ftp.nlst(remote_dir) if ftp.voidcmd(f'CWD {dir}') == 250):#     ftp.mkd(remote_dir)# 开始上传文件并记录时间start_time = datetime.now()with open(local_file_path, 'rb') as f:ftp.storbinary(f'STOR {ftp_full_path}', f)end_time = datetime.now()# 写入日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'文件 {filename} 上传成功,开始时间: {start_time}, 结束时间: {end_time}\n')# 备份并删除文件backup_path = os.path.join(backup_dir, rel_path, filename)os.makedirs(os.path.dirname(backup_path), exist_ok=True)os.replace(local_file_path, backup_path)except ftplib.all_errors as e:# 写入FTP错误到日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'文件 {filename} 上传失败: {e}\n')except Exception as e:# 写入通用错误到日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'处理文件 {filename} 时发生未知错误: {e}\n')# 开始遍历和上传traverse_and_upload(local_base_dir, ftp_base_path)print('处理完成。')

叠3 文件上传

zip_folder_upload_delete_move_cut3.py

"""
遍历目录文件夹I:\CCD叠二对齐度图片\效果图test\下5级子目录的zip文件,上传到FTP服务器
1.FTP服务器设置如下ftp_server = 'nas01.hzccd.svolt.cn'ftp_username = 'C11QD'ftp_password = 'Svolt@2023'
1.ftp路径对应于路径 “/1901/C11/赢合/6#/test18/”+本地压缩文件的相对路径,路径不存在则创建,用python实现上传逻辑,
2.对每个压缩文件上传的开始时间,结束时间,输出日志到D:\software\dcs_log ,日志文件格式:日期+cut2_ftp_zip_folder.log
3.上传成功的文件备份到I:\已上传_CCD叠二对齐度图片\效果图test\+源文件的相对路径,然后再把上传成功的文件删除报错:文件 xxx.zip 上传失败: 550 [2: No such file or directory] error calling getattr API.
"""import os
import ftplib
from datetime import datetimeredis_host = "localhost"
redis_port = 6379
redis_db = 9
import redis
r = redis.StrictRedis(host=redis_host, port=redis_port, db=redis_db, decode_responses=True)def get_num_from_equipment_code(equipment_code):equipment_code_len = len(equipment_code)str_myneed = equipment_code[equipment_code_len-2:]int_myneed = int(str_myneed)str_myneed = str(int_myneed)str_myneed += "#"return str_myneedEquipmentCode = r.get("EquipmentCode_lineEdit")
EquipmentCode_num = get_num_from_equipment_code(EquipmentCode)# FTP服务器设置
ftp_server = 'nas01.hzccd.svolt.cn'
ftp_username = 'C11QD'
ftp_password = 'Svolt@2023'
ftp_base_path = '/1901/C11/赢合/"+EquipmentCode_num+"/Image_zip/CCD叠三对齐度图片/效果图/'# 本地目录设置
local_base_dir = 'J:\\CCD叠三对齐度图片\\效果图\\'
log_dir = 'D:\\software\\dcs_log\\'
backup_dir = 'J:\\已上传_CCD叠三对齐度图片\\效果图\\'# 创建日志文件路径
today = datetime.now().strftime('%Y-%m-%d')
log_file_path = os.path.join(log_dir, f'{today}_cut3_zip_folder_upload_and_move_and_del.log')# 确保日志文件目录存在
if not os.path.exists(log_dir):os.makedirs(log_dir)def create_remote_dir(ftp, remote_path):# 递归创建远程目录dirs = remote_path.split('/')current_remote_dir = ''for dir_name in dirs:if dir_name:  # 避免末尾的空字符串current_remote_dir += '/' + dir_nametry:ftp.mkd(current_remote_dir)except ftplib.all_errors as e:if "550" not in str(e):  # 如果不是目录已存在的错误,则抛出异常raise# 遍历本地目录中的压缩文件(包括5级子目录)
def traverse_and_upload(root_dir, ftp_path):for dirpath, dirnames, filenames in os.walk(root_dir):# 只遍历到5级子目录if len(dirpath.split('\\')) - len(root_dir.split('\\')) > 4:continuefor filename in filenames:if filename.endswith('.zip'):local_file_path = os.path.join(dirpath, filename)rel_path = os.path.relpath(dirpath, local_base_dir)ftp_full_path = ftp_path + rel_path + '/' + filenameftp_full_path = ftp_full_path.replace("\\", "/")# 写入日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'local_file_path {local_file_path} \n')log_file.write(f'rel_path {rel_path} \n')log_file.write(f'ftp_full_path {ftp_full_path} \n')try:with ftplib.FTP(ftp_server, ftp_username, ftp_password) as ftp:ftp.encoding = "gb2312"# 切换到被动模式(如果需要)ftp.set_pasv(True)# 创建FTP目录(如果不存在)remote_dir = ftp_full_path.rsplit('/', 1)[0]remote_dir = remote_dir.replace("\\", "/")create_remote_dir(ftp, remote_dir)# 写入日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'remote_dir {remote_dir} \n')# if not any(dir for dir in ftp.nlst(remote_dir) if ftp.voidcmd(f'CWD {dir}') == 250):#     ftp.mkd(remote_dir)# 开始上传文件并记录时间start_time = datetime.now()with open(local_file_path, 'rb') as f:ftp.storbinary(f'STOR {ftp_full_path}', f)end_time = datetime.now()# 写入日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'文件 {filename} 上传成功,开始时间: {start_time}, 结束时间: {end_time}\n')# 备份并删除文件backup_path = os.path.join(backup_dir, rel_path, filename)os.makedirs(os.path.dirname(backup_path), exist_ok=True)os.replace(local_file_path, backup_path)except ftplib.all_errors as e:# 写入FTP错误到日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'文件 {filename} 上传失败: {e}\n')except Exception as e:# 写入通用错误到日志with open(log_file_path, 'a', encoding='utf-8') as log_file:log_file.write(f'处理文件 {filename} 时发生未知错误: {e}\n')# 开始遍历和上传traverse_and_upload(local_base_dir, ftp_base_path)print('处理完成。')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/15420.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】大模型在机器学习中的应用:从深度学习到生成式人工智能的演进

🔒文章目录: 💥1.引言 ☔2.大模型概述 🚲3.大模型在深度学习中的应用 🛴4.大模型在生成式人工智能中的应用 👊5.大模型的挑战与未来展望 💥1.引言 随着数据量的爆炸性增长和计算能力的提…

【C++】类与对象——多态详解

目录 一、多态的定义 二、重载、覆盖(重写)、隐藏(重定义)的对比 三、析构函数重写 四、C11 override 和 final 1. final 2. override 五、抽象类 六、多态的原理 一、多态的定义 多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为…

访存优化实践之一 : CPU、GPU、DDR与访存路径介绍

一、CPU的访存路径 上图是目前主流的CPU架构介绍。可以看到,CPU的访存路径:先经过MMU,然后经过Cache,最后到达DRAM。这其中涉及到的关键内容为基于MMU的内存管理以及缓存机制。 1.1、基于MMU的内存管理 众所周知,在计算机设计之处是没有虚拟地址的概念的,CPU发出的地址即…

centos7.9用docker运行一个nginx容器

首先你的linux 系统里面已经安装好了docker,docker的安装教程看这个 1,下载nginx镜像 有很多文章会把镜像下载说成是拉取镜像, 我觉得就是下载的意思啊,搞不懂为什么要说拉取? docker pull nginx 下载最新版 Nginx …

SpringBoot如何实现跨域?

定义一个配置类,实现WebMvcConfigurer接口,重写addCorsMappings方法 Configuration public class CorsConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allow…

LeetCode刷题笔记第2769题:找到最大的可达成数字

LeetCode刷题笔记第2769题:找到最大的可达成数字 题目: 想法: 从题目中可以看出,num经过t次增减变为x,x即为可达成数字。因为要求最大的可达成数字,需要满足num一直增加,x一直减少&#xff0c…

Spring Boot: 为 JPA 插上翅膀的 QueryDSL

1. 引言 不可否认的是 JPA 使用是非常方便的,极简化的配置,只需要使用注解,无需任何 xml 的配置文件,语义简单易懂,但是,以上的一切都建立在单表查询的前提下的,我们可以使用 JPA 默认提供的方法…

力扣刷题笔记——Day1

二分查找 题目描述:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 eg1:输入: nums [-1,0,3,5…

蛮力法0/1背包问题实验

实验项目1 蛮力法 实验题目 使用蛮力法解决0/1背包问题。 ​ 问题描述:给定n个重量(weight)为{w1, w2, … ,wn}、价值(key)为{v1, v2, … ,vn}的物品和一个**容量为C(contain)**的背包,求这些物品中的一个最有价值的子集,且要能够装到背包中…

【简单介绍下链表基础知识】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

嵌入式linux系统中文件系统制作方法详解

第一:制作目的 1、掌握嵌入式Ubuntu系统的构建方法 2、熟悉嵌入式Ubuntu文件系统映射压缩打包方法 3、掌握RK3399linux系统单文件系统更新方法 Ubuntu根文件系统制作完成之后,把制作好的ubuntu文件系统映射文件在出厂系统的基础上替换原有的ubuntu根文件系统,即对 Linux 系统…

vue data中的return

vue 的data return 是干啥的呢,vue中页面中绑定的变量都要放在data的return中,可以赋值,值可在script中改,修改引用就用this了 如果不使用return包裹的数据会在项目的全局中可见,会造成变量污染; 使用retu…

《AI学习笔记》大模型-微调/训练区别以及流程

阿丹: 之前一直对于大模型的微调和训练这两个名词不是很清晰,所有找了一个时间来弄明白到底有什么区别以及到底要怎么去使用去做。并且上手实践一下。 大模型业务全流程: 大模型为啥要微调?有哪些微调方式? 模型参数…

mac vscode 怎么配置git密码

1. 使用 Git 凭证管理器 Git 凭证管理器 (Git Credential Manager) 可以帮助你安全地存储和管理 Git 凭证。以下是配置步骤: 安装 Git 凭证管理器: 如果没有安装 Git,可以先通过以下命令安装 Homebrew: /bin/bash -c "$(cur…

简易进程池的实现

什么是进程池? 进程池(Process Pool)是一种用于管理和复用多个进程的技术或设计模式。在进程池中,一定数量的进程会被预先创建并保持在内存中,以便在需要时立即使用,而不是每次需要进程时都重新创建新的进程…

每日一题《leetcode--1472.设计浏览器历史记录》

https://leetcode.cn/problems/design-browser-history/ 这里我是用双栈实现前进和后退。 #define URL_SIZE 21 #define STACK_SIZE 5000typedef struct {char *BackStack[STACK_SIZE]; //回退栈char *ForwardStack[STACK_SIZE]; //前进栈int BackTop; //回退栈的栈顶下标…

Kubectl 的使用——k8s陈述式资源管理

一、kebuctl简介: kubectl 是官方的CLI命令行工具,用于与 apiserver 进行通信,将用户在命令行输入的命令,组织并转化为 apiserver 能识别的信息,进而实现管理 k8s 各种资源的一种有效途径。 对资源的增、删、查操作比较方便&…

JavaScript表达式语句一

表达式尾部假分号会形成一个表达式语句。默认的独立一行也是一个表达式语句。 语句块是由大括号包含一个或多个语句,形成的代码片段。 条件语句 程序右三种基结构:顺序、选择、循环。条件语句属于选择结构。 if语句 基本语法:if(条件语句…

使用nvm管理nodejs多个版本

在工作中,可能会遇到同时使用vue2和vue3开发项目,但他们的nodejs版本又不同,给你带来了困扰,不知道怎么办?这时就可以使用nvm管理多个nodejs版本 第一步:先去github上面下载nvm 这是下载地址:…

001 mongodb

文章目录 NoSql分类键值(Key-Value)存储数据库列存储数据库文档型数据库图形(Graph)数据库 NoSql的应用场景 MongoDb笛卡尔集mysql与mongodb逻辑结构对比mongodb社区版下载地址windows mongodb7.0配置安装mongoshell下载地址windows下创建名为mongod.cfg的配置文件运行mongodb检…