esp网页监控面板框架已成,通讯解决
This commit is contained in:
46
esp8266/compress_web_files.py
Normal file
46
esp8266/compress_web_files.py
Normal file
@@ -0,0 +1,46 @@
|
||||
import gzip
|
||||
import os
|
||||
|
||||
# 定义文件路径
|
||||
web_folder = "web"
|
||||
output_header = "esp8266/web.h"
|
||||
files_to_compress = ["index.html", "styles.css", "script.js"]
|
||||
|
||||
# 压缩文件并生成 C 常量
|
||||
def compress_file(input_path, output_path):
|
||||
with open(input_path, 'rb') as f_in:
|
||||
with gzip.open(output_path, 'wb') as f_out:
|
||||
f_out.writelines(f_in)
|
||||
|
||||
with open(output_path, 'rb') as f: # 修复 os.open 为 open
|
||||
compressed_data = f.read()
|
||||
|
||||
return compressed_data
|
||||
|
||||
# 生成 web.h 文件
|
||||
def generate_header():
|
||||
with open(output_header, 'w', encoding='utf-8') as header_file:
|
||||
header_file.write("#ifndef WEB_H\n#define WEB_H\n\n")
|
||||
|
||||
for file_name in files_to_compress:
|
||||
input_path = os.path.join(web_folder, file_name)
|
||||
output_path = input_path + ".gz"
|
||||
|
||||
if os.path.exists(input_path):
|
||||
compressed_data = compress_file(input_path, output_path)
|
||||
constant_name = file_name.replace('.', '_').upper()
|
||||
|
||||
header_file.write(f"const char {constant_name}[] = {{\n")
|
||||
header_file.write(",\n".join(
|
||||
[
|
||||
", ".join(f"0x{byte:02x}" for byte in compressed_data[i:i+16])
|
||||
for i in range(0, len(compressed_data), 16)
|
||||
]
|
||||
))
|
||||
header_file.write("\n};\n\n")
|
||||
|
||||
header_file.write("#endif // WEB_H\n")
|
||||
|
||||
if __name__ == "__main__":
|
||||
generate_header()
|
||||
print(f"Header file '{output_header}' generated successfully.")
|
||||
Reference in New Issue
Block a user