检查某目录或是文件是否存在 file_exists( ABSPATH . 'wp-config.php')

本文介绍了一种方法来检查WordPress安装目录下的关键配置文件wp-config.php是否存在。ABSPATH变量用于指定绝对路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

file_exists( ABSPATH . 'wp-config.php')

ABSPATH 为路径

from tkinter import * from tkinter import ttk, filedialog, messagebox import os import math class WindLoadCalculator: def init(self, root): self.root = root self.root.title(“聚之义日标风荷载计算1.0-应用研发”) self.root.geometry(“900x500”) # 增加宽度以容纳图片 self.root.resizable(False, False) # 修复:检查图标文件是否存在并使用正确的路径 try: base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__))) icon_path = os.path.join(base_path, "source", "JPWIND.ico") if os.path.exists(icon_path): self.root.iconbitmap(icon_path) else: print(f"警告: 图标文件 {icon_path} 不存在") except Exception as e: print(f"设置图标时出错: {e}") # 初始化变量 self.surface_roughness = StringVar(value="Ⅰ") self.height = DoubleVar(value=10.0) self.wind_speed = DoubleVar(value=25.0) self.usage_coefficient = DoubleVar(value=1.0) self.tilt_angle = DoubleVar(value=25.0) self.support_type = StringVar(value="地面支架") self.create_widgets() def create_widgets(self): # 创建主框架 - 使用网格布局以便在右侧放置图片 main_frame = Frame(self.root, padx=10, pady=10) main_frame.pack(fill=BOTH, expand=True) # 左侧计算区域 left_frame = Frame(main_frame) left_frame.grid(row=0, column=0, sticky="nsew", padx=(0, 10)) # 环境参数框架 env_frame = LabelFrame(left_frame, text="环境参数", padx=10, pady=10) env_frame.pack(fill=X, pady=5) # 地表面粗度 Label(env_frame, text="地表面粗度:").grid(row=0, column=0, sticky=W, pady=2) roughness_frame = Frame(env_frame) roughness_frame.grid(row=0, column=1, sticky=W, pady=2) roughness_options = ["Ⅰ", "Ⅱ", "Ⅲ", "Ⅳ"] for i, option in enumerate(roughness_options): Radiobutton(roughness_frame, text=option, variable=self.surface_roughness, value=option).pack(side=LEFT, padx=5) # 支架高度 Label(env_frame, text="支架高度(m):").grid(row=1, column=0, sticky=W, pady=2) Entry(env_frame, textvariable=self.height, width=10).grid(row=1, column=1, sticky=W, pady=2) # 3秒时距风速 Label(env_frame, text="3秒时距风速(m/s):").grid(row=2, column=0, sticky=W, pady=2) Entry(env_frame, textvariable=self.wind_speed, width=10).grid(row=2, column=1, sticky=W, pady=2) # 用途系数 Label(env_frame, text="用途系数:").grid(row=3, column=0, sticky=W, pady=2) usage_frame = Frame(env_frame) usage_frame.grid(row=3, column=1, sticky=W, pady=2) Radiobutton(usage_frame, text="一般光伏支架(1.0)", variable=self.usage_coefficient, value=1.0).pack(anchor=W) Radiobutton(usage_frame, text="重要光伏支架(1.32)", variable=self.usage_coefficient, value=1.32).pack(anchor=W) # 支架参数框架 support_frame = LabelFrame(left_frame, text="支架参数", padx=10, pady=10) support_frame.pack(fill=X, pady=5) # 支架类型 Label(support_frame, text="支架类型:").grid(row=0, column=0, sticky=W, pady=2) support_types = ["地面支架", "坡屋面支架", "平屋面支架"] ttk.Combobox(support_frame, textvariable=self.support_type, values=support_types, width=15).grid(row=0, column=1, sticky=W, pady=2) # 倾角 Label(support_frame, text="倾角():").grid(row=1, column=0, sticky=W, pady=2) Entry(support_frame, textvariable=self.tilt_angle, width=10).grid(row=1, column=1, sticky=W, pady=2) # 按钮框架 button_frame = Frame(left_frame) button_frame.pack(fill=X, pady=5) Button(button_frame, text="计算", command=self.calculate, width=15).pack(side=LEFT, padx=5) Button(button_frame, text="计算书", command=self.generate_report, width=15).pack(side=LEFT, padx=5) # 计算结果框架 result_frame = LabelFrame(left_frame, text="计算结果", padx=10, pady=10) result_frame.pack(fill=BOTH, expand=True, pady=5) self.result_text = Text(result_frame, wrap=WORD, height=8) self.result_text.pack(fill=BOTH, expand=True) scrollbar = Scrollbar(self.result_text, command=self.result_text.yview) scrollbar.pack(side=RIGHT, fill=Y) self.result_text.config(yscrollcommand=scrollbar.set) # 右侧图片区域 right_frame = Frame(main_frame) right_frame.grid(row=0, column=1, sticky="nsew") # 加载并显示图片 try: base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__))) image_path = os.path.join(base_path, "source", "JPWIND.GIF") if os.path.exists(image_path): self.image = PhotoImage(file=image_path) image_label = Label(right_frame, image=self.image) image_label.pack(fill=BOTH, expand=True) else: error_label = Label(right_frame, text="图片未找到", fg="red") error_label.pack(fill=BOTH, expand=True) print(f"警告: 图片文件 {image_path} 不存在") except Exception as e: error_label = Label(right_frame, text=f"加载图片出错\n{str(e)}", fg="red") error_label.pack(fill=BOTH, expand=True) print(f"加载图片时出错: {e}") # 设置列权重,使左侧计算区域和右侧图片区域按比例分配空间 main_frame.columnconfigure(0, weight=2) # 左侧占2/3 main_frame.columnconfigure(1, weight=1) # 右侧占1/3 def calculate(self): # 获取输入值 surface_roughness = self.surface_roughness.get() height = self.height.get() wind_speed = self.wind_speed.get() usage_coefficient = self.usage_coefficient.get() tilt_angle = self.tilt_angle.get() support_type = self.support_type.get() # 清空结果文本框 self.result_text.delete(1.0, END) # 计算环境系数 E # 风速分布系数 Er if surface_roughness == "Ⅰ": zb = 5 zg = 250 alpha = 0.10 elif surface_roughness == "Ⅱ": zb = 5 zg = 350 alpha = 0.15 elif surface_roughness == "Ⅲ": zb = 5 zg = 450 alpha = 0.20 else: # Ⅳ zb = 10 zg = 550 alpha = 0.27 er = 1.7 * (zb / zg) ** alpha # 环境影响系数 Gf if height < 10: if surface_roughness == "Ⅰ": gf = 2.0 elif surface_roughness == "Ⅱ": gf = 2.2 elif surface_roughness == "Ⅲ": gf = 2.5 else: # Ⅳ gf = 3.1 elif height > 40: if surface_roughness == "Ⅰ": gf = 1.8 elif surface_roughness == "Ⅱ": gf = 2.0 elif surface_roughness == "Ⅲ": gf = 2.1 else: # Ⅳ gf = 2.3 else: # 线性插值 if surface_roughness == "Ⅰ": gf_low = 2.0 gf_high = 1.8 elif surface_roughness == "Ⅱ": gf_low = 2.2 gf_high = 2.0 elif surface_roughness == "Ⅲ": gf_low = 2.5 gf_high = 2.1 else: # Ⅳ gf_low = 3.1 gf_high = 2.3 gf = gf_low + (gf_high - gf_low) * (height - 10) / 30 # 环境系数 E e = er ** 2 * gf # 日标的速度压 qp qp = 0.6 * e * usage_coefficient * wind_speed ** 2 / 1000 # 计算正压和负压 positive_angle_valid = True negative_angle_valid = True # 正压风力系数 CW if support_type == "地面支架": if tilt_angle < 15 or tilt_angle > 45: positive_angle_valid = False cw_positive = 0 else: cw_positive = 0.65 + 0.009 * tilt_angle elif support_type == "坡屋面支架": if tilt_angle < 12 or tilt_angle > 27: positive_angle_valid = False cw_positive = 0 else: cw_positive = 0.95 - 0.017 * tilt_angle else: # 平屋面支架 if tilt_angle >= 0 and tilt_angle <= 15: cw_positive = 0.785 elif tilt_angle > 15 and tilt_angle <= 45: cw_positive = 0.65 + 0.009 * tilt_angle else: positive_angle_valid = False cw_positive = 0 # 负压风力系数 CW if support_type == "地面支架": if tilt_angle < 15 or tilt_angle > 45: negative_angle_valid = False cw_negative = 0 else: cw_negative = 0.71 + 0.016 * tilt_angle elif support_type == "坡屋面支架": if tilt_angle < 12 or tilt_angle > 27: negative_angle_valid = False cw_negative = 0 else: cw_negative = -0.1 + 0.077 * tilt_angle - 0.0026 * tilt_angle ** 2 else: # 平屋面支架 if tilt_angle >= 0 and tilt_angle <= 15: cw_negative = 0.95 elif tilt_angle > 15 and tilt_angle <= 45: cw_negative = 0.71 + 0.016 * tilt_angle else: negative_angle_valid = False cw_negative = 0 # 设计风压 WP wp_positive = cw_positive * qp wp_negative = cw_negative * qp # 显示计算结果 self.result_text.insert(END, f"环境参数:\n") self.result_text.insert(END, f"地表面粗度: {surface_roughness}\n") self.result_text.insert(END, f"支架高度: {height} m\n") self.result_text.insert(END, f"3秒时距风速: {wind_speed} m/s\n") self.result_text.insert(END, f"用途系数: {usage_coefficient}\n\n") self.result_text.insert(END, f"支架参数:\n") self.result_text.insert(END, f"支架类型: {support_type}\n") self.result_text.insert(END, f"倾角: {tilt_angle} 度\n\n") self.result_text.insert(END, f"中间计算结果:\n") self.result_text.insert(END, f"风速分布系数 Er: {er:.4f}\n") self.result_text.insert(END, f"环境影响系数 Gf: {gf:.4f}\n") self.result_text.insert(END, f"环境系数 E: {e:.4f}\n") self.result_text.insert(END, f"日标速度压 qp: {qp:.4f} kN/㎡\n\n") self.result_text.insert(END, f"最终计算结果:\n") self.result_text.insert(END, f"正压:\n") self.result_text.insert(END, f" 风力系数 CW: {cw_positive:.4f}\n") if not positive_angle_valid: self.result_text.insert(END, f" 警告: 输入的倾角超出了{support_type}正压的适用范围!\n") self.result_text.insert(END, f" 设计风压 WP: {wp_positive:.4f} kN/㎡\n\n") self.result_text.insert(END, f"负压:\n") self.result_text.insert(END, f" 风力系数 CW: {cw_negative:.4f}\n") if not negative_angle_valid: self.result_text.insert(END, f" 警告: 输入的倾角超出了{support_type}负压的适用范围!\n") self.result_text.insert(END, f" 设计风压 WP: {wp_negative:.4f} kN/㎡\n") # 保存计算结果用于生成计算书 self.calculation_data = { "surface_roughness": surface_roughness, "height": height, "wind_speed": wind_speed, "usage_coefficient": usage_coefficient, "tilt_angle": tilt_angle, "support_type": support_type, "er": er, "gf": gf, "e": e, "qp": qp, "cw_positive": cw_positive, "cw_negative": cw_negative, "wp_positive": wp_positive, "wp_negative": wp_negative, "positive_angle_valid": positive_angle_valid, "negative_angle_valid": negative_angle_valid } def generate_report(self): if not hasattr(self, 'calculation_data'): messagebox.showinfo("提示", "请先进行计算!") return folder_path = filedialog.askdirectory(title="选择保存文件夹") if not folder_path: return file_path = os.path.join(folder_path, "JPWIND.TXT") try: with open(file_path, 'w', encoding='utf-8') as file: file.write("聚之义日标风荷载计算1.0-应用研发\n") file.write("=" * 50 + "\n\n") file.write("一、输入参数\n") file.write(f"1. 环境参数:\n") file.write(f" 地表面粗度: {self.calculation_data['surface_roughness']}\n") file.write(f" 支架高度: {self.calculation_data['height']} m\n") file.write(f" 3秒时距风速: {self.calculation_data['wind_speed']} m/s\n") file.write(f" 用途系数: {self.calculation_data['usage_coefficient']}\n\n") file.write(f"2. 支架参数:\n") file.write(f" 支架类型: {self.calculation_data['support_type']}\n") file.write(f" 倾角: {self.calculation_data['tilt_angle']} 度\n\n") file.write("二、计算过程\n") file.write("1. 环境系数 E 计算:\n") file.write(f" 风速分布系数 Er = 1.7 * (Zb/ZG)^α\n") file.write(f" 其中 Zb={self.get_zb(self.calculation_data['surface_roughness'])}, ") file.write(f"ZG={self.get_zg(self.calculation_data['surface_roughness'])}, ") file.write(f"α={self.get_alpha(self.calculation_data['surface_roughness'])}\n") file.write(f" Er = 1.7 * ({self.get_zb(self.calculation_data['surface_roughness'])}/") file.write(f"{self.get_zg(self.calculation_data['surface_roughness'])})^") file.write(f"{self.get_alpha(self.calculation_data['surface_roughness'])} = ") file.write(f"{self.calculation_data['er']:.4f}\n\n") file.write(f" 环境影响系数 Gf: {self.calculation_data['gf']:.4f}\n") file.write(f" 环境系数 E = Er² * Gf = {self.calculation_data['er']:.4f}² * ") file.write(f"{self.calculation_data['gf']:.4f} = {self.calculation_data['e']:.4f}\n\n") file.write("2. 日标的速度压 qp 计算:\n") file.write(f" qp = 0.6 * E * I * v²/1000\n") file.write(f" qp = 0.6 * {self.calculation_data['e']:.4f} * ") file.write(f"{self.calculation_data['usage_coefficient']} * ") file.write(f"{self.calculation_data['wind_speed']}²/1000 = ") file.write(f"{self.calculation_data['qp']:.4f} kN/㎡\n\n") file.write("3. 风力系数 CW 计算:\n") file.write(f" {self.calculation_data['support_type']}正压:\n") if self.calculation_data['support_type'] == "地面支架": file.write(f" CW = 0.65 + 0.009 * θ\n") elif self.calculation_data['support_type'] == "坡屋面支架": file.write(f" CW = 0.95 - 0.017 * θ\n") else: # 平屋面支架 if self.calculation_data['tilt_angle'] >= 0 and self.calculation_data['tilt_angle'] <= 15: file.write(f" θ ≤ 15°, CW = 0.785\n") else: file.write(f" θ > 15°, CW = 0.65 + 0.009 * θ\n") file.write(f" CW = {self.calculation_data['cw_positive']:.4f}\n\n") file.write(f" {self.calculation_data['support_type']}负压:\n") if self.calculation_data['support_type'] == "地面支架": file.write(f" CW = 0.71 + 0.016 * θ\n") elif self.calculation_data['support_type'] == "坡屋面支架": file.write(f" CW = -0.1 + 0.077 * θ - 0.0026 * θ²\n") else: # 平屋面支架 if self.calculation_data['tilt_angle'] >= 0 and self.calculation_data['tilt_angle'] <= 15: file.write(f" θ ≤ 15°, CW = 0.95\n") else: file.write(f" θ > 15°, CW = 0.71 + 0.016 * θ\n") file.write(f" CW = {self.calculation_data['cw_negative']:.4f}\n\n") if not self.calculation_data['positive_angle_valid']: file.write(f"警告: 输入的倾角超出了{self.calculation_data['support_type']}正压的适用范围!\n\n") if not self.calculation_data['negative_angle_valid']: file.write(f"警告: 输入的倾角超出了{self.calculation_data['support_type']}负压的适用范围!\n\n") file.write("三、计算结果\n") file.write(f"正压:\n") file.write(f" 风力系数 CW: {self.calculation_data['cw_positive']:.4f}\n") file.write(f" 设计风压 WP = CW * qp = {self.calculation_data['cw_positive']:.4f} * ") file.write(f"{self.calculation_data['qp']:.4f} = {self.calculation_data['wp_positive']:.4f} kN/㎡\n\n") file.write(f"负压:\n") file.write(f" 风力系数 CW: {self.calculation_data['cw_negative']:.4f}\n") file.write(f" 设计风压 WP = CW * qp = {self.calculation_data['cw_negative']:.4f} * ") file.write(f"{self.calculation_data['qp']:.4f} = {self.calculation_data['wp_negative']:.4f} kN/㎡\n\n") file.write("计算日期: " + self.get_current_date() + "\n") messagebox.showinfo("成功", f"计算书已保存至:\n{file_path}") except Exception as e: messagebox.showerror("错误", f"保存计算书时出错: {str(e)}") def get_zb(self, roughness): if roughness == "Ⅰ": return 5 elif roughness == "Ⅱ": return 5 elif roughness == "Ⅲ": return 5 else: # Ⅳ return 10 def get_zg(self, roughness): if roughness == "Ⅰ": return 250 elif roughness == "Ⅱ": return 350 elif roughness == "Ⅲ": return 450 else: # Ⅳ return 550 def get_alpha(self, roughness): if roughness == "Ⅰ": return 0.10 elif roughness == "Ⅱ": return 0.15 elif roughness == "Ⅲ": return 0.20 else: # Ⅳ return 0.27 def get_current_date(self): from datetime import datetime return datetime.now().strftime("%Y-%m-%d %H:%M:%S") if name == “main”: # 修复:添加对打包环境的支持 import sys root = Tk() app = WindLoadCalculator(root) root.mainloop() 将其修改成page3.dart,按键跳转一个计算书新界面result_page.dart,并将计算书生成到result_page.dart界面的一个控件中
08-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值