当前位置: 首页 > news >正文

如何建学校网站wordpress云建站教程

如何建学校网站,wordpress云建站教程,印象笔记 wordpress,山西网站建设网站上文编写的程序效率较低,这主要是由于我自己的思路局限性,经张泽鹏先生指导,我知道了可以用Perl工具轻松又快捷地实现文本替换。 比如,将3/sheet1.xml中全部r" "属性替换为空可以这么写 perl -i -p -e s# r"[^&qu…

上文编写的程序效率较低,这主要是由于我自己的思路局限性,经张泽鹏先生指导,我知道了可以用Perl工具轻松又快捷地实现文本替换。
比如,将3/sheet1.xml中全部r=" "属性替换为空可以这么写

perl -i -p -e 's# r="[^"]+"##g' 3/sheet1.xml

我把这条语句告诉DeepSeek,他就编出了高效的程序,并且一次成功。

import os
import zipfile
import shutil
import subprocess
from pathlib import Pathdef process_sheet_xml(input_xlsx_path, output_base_dir):"""使用命令行工具处理xlsx文件中的sheet1.xml"""# 创建输出目录for i in range(3):os.makedirs(os.path.join(output_base_dir, str(i)), exist_ok=True)# 临时解压目录temp_dir = "temp_extract"os.makedirs(temp_dir, exist_ok=True)try:# 解压xlsx文件with zipfile.ZipFile(input_xlsx_path, 'r') as zip_ref:zip_ref.extractall(temp_dir)# 查找sheet1.xml文件sheet_path = find_sheet1_in_dir(temp_dir)if not sheet_path:print("未找到sheet1.xml文件")return# 复制原始文件到三个目录for i in range(3):target_path = os.path.join(output_base_dir, str(i), "sheet1.xml")shutil.copy2(sheet_path, target_path)print(f"版本 {i}: 已复制原始文件到 {target_path}")# 使用命令行工具处理三个版本process_with_commandline(output_base_dir)# 为每个版本创建新的xlsx文件create_new_xlsx_files(temp_dir, output_base_dir)finally:# 清理临时文件if os.path.exists(temp_dir):shutil.rmtree(temp_dir)def process_with_commandline(output_base_dir):"""使用命令行工具处理三个版本的sheet1.xml"""# 版本0: 无span, 无row的r, 无col的rprint("处理版本0: 移除所有spans、row的r、cell的r")run_command(f"perl -i -p -e 's# spans=\"[^\"]+\"##g' {output_base_dir}/0/sheet1.xml")run_command(f"perl -i -p -e 's# r=\"[^\"]+\"##g' {output_base_dir}/0/sheet1.xml")# 版本1: 有span, 无row的r, 无col的rprint("处理版本1: 移除row的r、cell的r,保留spans")run_command(f"perl -i -p -e 's#<row r=\"[^\"]+\"#<row#g' {output_base_dir}/1/sheet1.xml")run_command(f"perl -i -p -e 's#<c r=\"[^\"]+\"#<c#g' {output_base_dir}/1/sheet1.xml")# 版本2: 有span, 有row的r, 无col的rprint("处理版本2: 只移除cell的r,保留row的spans和r")run_command(f"perl -i -p -e 's#<c r=\"[^\"]+\"#<c#g' {output_base_dir}/2/sheet1.xml")def run_command(cmd):"""执行命令行命令"""try:print(f"执行命令: {cmd}")result = subprocess.run(cmd, shell=True, check=True, capture_output=True, text=True)if result.returncode == 0:print("命令执行成功")else:print(f"命令执行失败: {result.stderr}")except subprocess.CalledProcessError as e:print(f"命令执行错误: {e}")except FileNotFoundError:print("未找到perl命令,请确保Perl已安装")# 如果perl不可用,尝试使用sed(Linux/Mac)if 'perl' in cmd:sed_cmd = cmd.replace('perl -i -p -e', 'sed -i')print(f"尝试使用sed: {sed_cmd}")try:subprocess.run(sed_cmd, shell=True, check=True)except:print("sed命令也失败,请安装Perl或sed")def create_new_xlsx_files(temp_dir, output_base_dir):"""为每个版本创建新的xlsx文件,设置压缩级别为6"""for version in range(3):# 创建版本特定的临时目录version_temp_dir = os.path.join(output_base_dir, f"temp_version_{version}")if os.path.exists(version_temp_dir):shutil.rmtree(version_temp_dir)shutil.copytree(temp_dir, version_temp_dir)# 替换sheet1.xml文件modified_sheet_path = os.path.join(output_base_dir, str(version), "sheet1.xml")target_sheet_path = find_sheet1_in_dir(version_temp_dir)if target_sheet_path and os.path.exists(modified_sheet_path):# 替换为修改后的文件shutil.copy2(modified_sheet_path, target_sheet_path)print(f"版本 {version}: 已替换 {target_sheet_path}")# 创建新的xlsx文件output_xlsx = os.path.join(output_base_dir, f"wps{version}.xlsx")create_zip_from_directory(version_temp_dir, output_xlsx)print(f"版本 {version}: 已创建 {output_xlsx}")# 清理临时目录shutil.rmtree(version_temp_dir)def find_sheet1_in_dir(directory):"""在目录中查找sheet1.xml文件"""for root, dirs, files in os.walk(directory):for file in files:if file == "sheet1.xml":return os.path.join(root, file)return Nonedef create_zip_from_directory(directory, output_zip):"""将目录内容压缩为xlsx文件,设置压缩级别为6"""# 确保输出文件不存在if os.path.exists(output_zip):os.remove(output_zip)# 创建zip文件,设置压缩级别为6with zipfile.ZipFile(output_zip, 'w', zipfile.ZIP_DEFLATED, compresslevel=6) as zipf:for root, dirs, files in os.walk(directory):for file in files:file_path = os.path.join(root, file)# 计算在zip中的相对路径arcname = os.path.relpath(file_path, directory)zipf.write(file_path, arcname)def main():# 使用示例input_file = "4/wps_h0.xlsx"  # 替换为你的xlsx文件路径output_dir = "4"      # 输出目录# 确保输出目录存在os.makedirs(output_dir, exist_ok=True)process_sheet_xml(input_file, output_dir)print("处理完成!")print(f"生成的文件:")print(f"  wps0.xlsx - 无span, 无row的r, 无col的r")print(f"  wps1.xlsx - 有span, 无row的r, 无col的r")  print(f"  wps2.xlsx - 有span, 有row的r, 无col的r")print(f"文件保存在: {os.path.abspath(output_dir)}")if __name__ == "__main__":main()

执行结果如下

time python3 stripxml5.py
版本 0: 已复制原始文件到 4/0/sheet1.xml
版本 1: 已复制原始文件到 4/1/sheet1.xml
版本 2: 已复制原始文件到 4/2/sheet1.xml
处理版本0: 移除所有spans、row的r、cell的r
执行命令: perl -i -p -e 's# spans="[^"]+"##g' 4/0/sheet1.xml
命令执行成功
执行命令: perl -i -p -e 's# r="[^"]+"##g' 4/0/sheet1.xml
命令执行成功
处理版本1: 移除row的r、cell的r,保留spans
执行命令: perl -i -p -e 's#<row r="[^"]+"#<row#g' 4/1/sheet1.xml
命令执行成功
执行命令: perl -i -p -e 's#<c r="[^"]+"#<c#g' 4/1/sheet1.xml
命令执行成功
处理版本2: 只移除cell的r,保留row的spans和r
执行命令: perl -i -p -e 's#<c r="[^"]+"#<c#g' 4/2/sheet1.xml
命令执行成功
版本 0: 已替换 4/temp_version_0/xl/worksheets/sheet1.xml
版本 0: 已创建 4/wps0.xlsx
版本 1: 已替换 4/temp_version_1/xl/worksheets/sheet1.xml
版本 1: 已创建 4/wps1.xlsx
版本 2: 已替换 4/temp_version_2/xl/worksheets/sheet1.xml
版本 2: 已创建 4/wps2.xlsx
处理完成!
生成的文件:wps0.xlsx - 无span, 无row的r, 无col的rwps1.xlsx - 有span, 无row的r, 无col的rwps2.xlsx - 有span, 有row的r, 无col的r
文件保存在: /par/4real	1m46.348s
user	0m56.816s
sys	0m10.052sls -l 4/wps*xlsx
-rw-r--r-- 1 root root  91077587 Aug 21 16:00 4/wps0.xlsx
-rw-r--r-- 1 root root  91126367 Aug 21 16:01 4/wps1.xlsx
-rw-r--r-- 1 root root  91268239 Aug 21 16:01 4/wps2.xlsx
-rw-r--r-- 1 1000 1000 138414915 Aug 21 07:50 4/wps_h0.xlsx

这个程序效率比原始版本高出了几个数量级。
我也终于能测试上文二40万行256列的xlsx在duckdb中读写速度差异了,结论没变,去掉每列r=" "属性,增速20%。

D create or replace table t3a as from read_sheet('4/wps_h0.xlsx');Run Time (s): real 17.853 user 19.024000 sys 2.464000
D 
D create or replace table t4a as from read_sheet('4/wps0.xlsx');Run Time (s): real 14.674 user 12.272000 sys 2.404000
D 
D create or replace table t5a as from read_sheet('4/wps1.xlsx');Run Time (s): real 15.894 user 12.392000 sys 2.660000
D 
D create or replace table t6a as from read_sheet('4/wps2.xlsx');Run Time (s): real 15.023 user 12.484000 sys 2.500000D create or replace table t3 as from '4/wps_h0.xlsx';Run Time (s): real 11.397 user 22.544000 sys 0.144000
D 
D create or replace table t4 as from '4/wps0.xlsx';Run Time (s): real 8.839 user 17.400000 sys 0.236000
D 
D create or replace table t5 as from '4/wps1.xlsx';Run Time (s): real 8.716 user 17.320000 sys 0.108000
D 
D create or replace table t6 as from '4/wps2.xlsx';Run Time (s): real 8.732 user 17.340000 sys 0.120000
http://www.dtcms.com/a/475867.html

相关文章:

  • 在网站上做远程教育系统多少钱wordpress置顶精华图标
  • 怎么给网站备案网站制作开票几个点
  • 产品发布网站自己制作上传图片的网站怎么做
  • 龙岩做网站哪家最好专做蔬菜大棚的网站
  • 网站开发+语音泽库县公司网站建设
  • Ultralytics代码库深度解读【二】: TensorRT 引擎文件的构建与序列化
  • 广东网站建设哪家中国外贸网站
  • 做个卖东西的网站myeclipse做网站
  • 学生做网站的工作室网站建设有哪些荣誉
  • 字画价格网站建设方案无锡大型网站建设
  • 什么网站做家具出口做网络营销推广的公司
  • 外包网站怎么做seo响应式网站不加载图片
  • 河北建设网站公司wordpress postgre
  • 青岛网站建设青岛新思维做dapp开发广州
  • 【前缀和】| LeetCode 974题解 和可被K整除的子数组
  • 阿克苏建设租房信息阿克苏租房网站网站改版思路
  • 电商网站开发框架网站推广怎么做
  • 微信网站建设报价单应用商店软件
  • 开发php网站开发沈阳网势科技有限公司怎么样
  • 临沂网站公众号建设重庆企业型网站建设
  • 天津网站设计公司价格网页设计图片位置怎么设置
  • 云网站功能html网页设计代码教程
  • 网站建设实例大制作建网站解决方案
  • 电商网站开发python网站建设服务网站建设
  • 快速网站建设哪家好小7手游官网下载
  • 莆田网站建设团队网站建设与制作总结
  • 多线程(七) --- 多线程进阶
  • 沛县建设局网站来个网站好人有好报2024
  • asp.net网站开发pdf色盲图
  • 做的网站为什么手机上搜不到网站建设的主要技术路线