哪个网站可以做兼职笔译/sem是什么职业

哪个网站可以做兼职笔译,sem是什么职业,成全视频免费观看在线看动漫,徐州市网站目录 一、原始函数二、类三、转换过程 一、原始函数 最开始就是写了几个函数(包括doc、excel、ppt类型的文件)转换为pdf,需要将这些函数形成一个类。相似的一类函数就可以组成一个实现特定功能的类 import subprocess import pandas as pd i…

目录

  • 一、原始函数
  • 二、类
  • 三、转换过程

一、原始函数


最开始就是写了几个函数(包括doc、excel、ppt类型的文件)转换为pdf,需要将这些函数形成一个类。相似的一类函数就可以组成一个实现特定功能的类

import subprocess
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPagesdef doc_to_pdf(input_file):"""将指定文件转换为 PDF 格式。该函数使用 LibreOffice 的命令行工具 lowriter 将输入文件转换为 PDF。支持多种文件格式,如 .docx, .doc, .odt 等。参数:input_file (str): 要转换的输入文件路径"""try:# 调用命令行工具 lowriter 进行转换subprocess.run(["lowriter", "--convert-to", "pdf", input_file], check=True)print(f"文件 {input_file} 已成功转换为 PDF。")except subprocess.CalledProcessError as e:print(f"转换失败: {e}")except FileNotFoundError:print("未找到 lowriter 命令,请确保 LibreOffice 已安装。")def excel_to_pdf(input_file):"""将 Excel 文件转换为 PDF 格式。该函数使用 LibreOffice 的命令行工具将 Excel 文件转换为 PDF。参数:input_file (str): 要转换的 Excel 文件路径"""try:# 调用命令行工具 libreoffice 进行转换subprocess.run(["libreoffice", "--headless", "--convert-to", "pdf", input_file], check=True)print(f"文件 {input_file} 已成功转换为 PDF。")except subprocess.CalledProcessError as e:print(f"转换失败: {e}")except FileNotFoundError:print("未找到 libreoffice 命令,请确保 LibreOffice 已安装。")def ppt_to_pdf(input_file):"""将 PPT 文件转换为 PDF 格式。该函数使用 LibreOffice 的命令行工具将 PPT 文件转换为 PDF。参数:input_file (str): 要转换的 PPT 文件路径"""subprocess.run(["libreoffice", "--headless", "--convert-to", "pdf", input_file], check=True)print(f"文件 {input_file} 已成功转换为 PDF。")if __name__ == '__main__':input_file='/data/hyq/code/llf/2024xx.xlsx'output_file='2024年xx.pdf'excel_to_pdf(input_file)

二、类


更加结构化的文件转化类

import subprocess
import os
from typing import Optional, List
from pathlib import Pathclass DocumentToPDF:"""文档转PDF转换器类支持将各种文档格式(Word、Excel、PPT等)转换为PDF格式。使用LibreOffice作为转换工具。"""def __init__(self, libreoffice_path: Optional[str] = None):"""初始化转换器Args:libreoffice_path: LibreOffice可执行文件的路径,默认为None(使用系统PATH中的LibreOffice)"""self.libreoffice_path = libreoffice_path or 'libreoffice'self.supported_formats = {'doc': self._convert_document,'docx': self._convert_document,'xls': self._convert_excel,'xlsx': self._convert_excel,'ppt': self._convert_presentation,'pptx': self._convert_presentation,'odt': self._convert_document,'ods': self._convert_excel,'odp': self._convert_presentation}def _check_libreoffice(self) -> bool:"""检查LibreOffice是否可用"""try:subprocess.run([self.libreoffice_path, '--version'], check=True, capture_output=True)return Trueexcept (subprocess.CalledProcessError, FileNotFoundError):return Falsedef _convert_document(self, input_file: str) -> bool:"""转换文档文件(DOC、DOCX等)"""try:subprocess.run([self.libreoffice_path, '--headless', '--convert-to', 'pdf', input_file], check=True)return Trueexcept subprocess.CalledProcessError:return Falsedef _convert_excel(self, input_file: str) -> bool:"""转换电子表格文件(XLS、XLSX等)"""try:subprocess.run([self.libreoffice_path, '--headless', '--convert-to', 'pdf', input_file], check=True)return Trueexcept subprocess.CalledProcessError:return Falsedef _convert_presentation(self, input_file: str) -> bool:"""转换演示文稿文件(PPT、PPTX等)"""try:subprocess.run([self.libreoffice_path, '--headless', '--convert-to', 'pdf', input_file], check=True)return Trueexcept subprocess.CalledProcessError:return Falsedef convert(self, input_file: str, output_dir: Optional[str] = None) -> bool:"""转换文件为PDF格式Args:input_file: 输入文件路径output_dir: 输出目录,默认为None(使用输入文件所在目录)Returns:bool: 转换是否成功"""if not self._check_libreoffice():print("错误:未找到LibreOffice,请确保已正确安装。")return Falseinput_path = Path(input_file)if not input_path.exists():print(f"错误:输入文件 {input_file} 不存在。")return Falsefile_extension = input_path.suffix.lower()[1:]  # 移除点号if file_extension not in self.supported_formats:print(f"错误:不支持的文件格式 {file_extension}")return False# 如果指定了输出目录,确保它存在if output_dir:os.makedirs(output_dir, exist_ok=True)os.chdir(output_dir)# 执行转换convert_func = self.supported_formats[file_extension]success = convert_func(str(input_path))if success:output_file = input_path.with_suffix('.pdf').nameprint(f"转换成功:{output_file}")else:print(f"转换失败:{input_file}")return successdef batch_convert(self, input_files: List[str], output_dir: Optional[str] = None) -> List[bool]:"""批量转换文件Args:input_files: 输入文件路径列表output_dir: 输出目录Returns:List[bool]: 每个文件的转换结果"""return [self.convert(f, output_dir) for f in input_files]# 使用示例
if __name__ == '__main__':# 创建转换器实例converter = DocumentToPDF()# 单个文件转换input_file = '/data/hyq/code/llf/2024年技术能力群个人创值数据汇总.xlsx'converter.convert(input_file)# 批量转换示例# files = ['doc1.docx', 'sheet1.xlsx', 'ppt1.pptx']# converter.batch_convert(files, output_dir='output_pdfs')

三、转换过程


面向对象设计,意味着更好的代码组织和复用。整个类在下面函数的书写过程中,增加了错误处理和状态检查,使得类更加健壮和灵活,可以更好地处理各种情况和错误。增加了类型提示,提高代码可读性
首先是类的初始化,且定义了一个不同类型的文件如何进行处理的字典,支持更多文件格式。
在这里插入图片描述
增加了 LibreOffice 可用性检查。
在这里插入图片描述
增加了各种状态检查

在这里插入图片描述
提取文件的后缀类型,并使用字典中对应的方法进行文件转换
在这里插入图片描述
支持批量转换
在这里插入图片描述
使用起来也很方便,先创建一个实例,然后调用实例
在这里插入图片描述

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

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

相关文章

VSCode扩展工具Copilot MCP使用教程【MCP】

MCP(Model Context Protocol,模型上下文协议) ,2024年11月底,由 Anthropic 推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信协议。本文章教你使用VSCode…

【小白向】Word|Word怎么给公式标号、调整公式字体和花括号对齐

【小白向】Word|Word怎么给公式标号、调整公式字体和花括号对齐 我的版本:Word 2021 如需快速查看关键步骤,请直接阅读标红部分。 如果遇到无法调整的情况,可以直接下载我的示例文档进行参考:花括号和其他的示例公式.…

【算法day15】最接近的三数之和

最接近的三数之和 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 这里是引用 返回这三个数的和。 假定每组输入只存在恰好一个解。 https://leetcode.cn/problems/3sum-closest/submissions/61…

Blender-MCP服务源码5-BlenderSocket插件安装

Blender-MCP服务源码5-BlenderSocket插件安装 上一篇讲述了Blender是基于Socket进行本地和远程进行通讯,现在尝试将BlenderSocket插件安装到Blender中进行功能调试 1-核心知识点 将开发的BlenderSocket插件安装到Blender中 2-思路整理 1)将SocketServe…

【MySQL数据库】存储过程与自定义函数(含: SQL变量、分支语句、循环语句 和 游标、异常处理 等内容)

存储过程:一组预编译的SQL语句和流程控制语句,被命名并存储在数据库中。存储过程可以用来封装复杂的数据库操作逻辑,并在需要时进行调用。 类似的操作还有:自定义函数、.sql文件导入。 我们先从熟悉的函数开始说起: …

ASP3605抗辐照加固同步降压调节器——商业航天电源芯片解决方案新选择

ASP3605企业宇航级型号ASP3605S2U通过SEU≥75 MeVcm/mg与SEL≥75 MeVcm/mg抗辐射测试。其输入电压4V至15V,输出电流5A,支持多相级联与冗余设计,适用于卫星、航天器电源系统。 面向航天场景的核心功能设计 1. 抗辐射与可靠性保障 单粒子效应…

2025-03-16 学习记录--C/C++-PTA 习题4-4 特殊a串数列求和

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、题目描述 ⭐️ 习题4-4 特殊a串数列求和 给定两个均不超过9的正整数a和n,要求编写程序求aaaaaa⋯aa⋯a&#x…

在大数据开发中ETL是指什么?

hello宝子们...我们是艾斯视觉擅长ui设计和前端数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在数字经济时代,数据已成为企业最核心的资产。然而,分散在业务系统、日志文件…

Python pyqt+flask做一个简单实用的自动排班系统

这是一个基于Flask和PyQt的排班系统,可以将Web界面嵌入到桌面应用程序中。 系统界面: 功能特点: - 读取员工信息和现有排班表 - 自动生成排班表 - 美观的Web界面 - 独立的桌面应用程序 整体架构: 系统采用前后端分离的架构…

Pycharm接入DeepSeek,提升自动化脚本的写作效率

一.效果展示: 二.实施步骤: 1.DeepSeek官网创建API key: 创建成功后,会生成一个API key: 2. PyCharm工具,打开文件->设置->插件,搜索“Continue”,点击安装 3.安装完成后&…

Java:Arrays类:操作数组的工具类

文章目录 Arrays类常见方法SetAll(); 代码排序如果数组中存储的是自定义对象 Arrays类 常见方法 SetAll(); 注意: 不能用新的数组接是因为修改的是原数组,所以完了要输出原数组发现会产生变化参数是数组下标变成灰色是因为还能简化(Lambda…

2025-gazebo配置on vmware,wsl

ros2安装 # 安装ros2, 推荐鱼香ros一键式安装 wget http://fishros.com/install -O fishros && . fishros安装版本:ubuntu24.04 ros2 jazzy gazebo Getting Started with Gazebo? — Gazebo ionic documentation ros与gz的版本对应关系: ​…

格力地产更名“珠免集团“ 全面转型免税赛道

大湾区经济网品牌观察讯,3月18日,格力地产股份有限公司公告宣布,拟将公司名称变更为"珠海珠免集团股份有限公司",证券简称同步变更为"珠免集团"。此次更名并非简单的品牌焕新,而是标志着这家曾以房…

自然语言处理入门4——RNN

一般来说,提到自然语言处理,我们都会涉及到循环神经网络(RNN),这是因为自然语言可以被看作是一个时间序列,这个时间序列中的元素是一个个的token。传统的前馈神经网络结构简单,但是不能很好的处…

数据结构之链表(双链表)

目录 一、双向带头循环链表 概念 二、哨兵位的头节点 优点: 头节点的初始化 三、带头双向链表的实现 1.双链表的销毁 2.双链表的打印 3.双链表的尾插和头插 尾插: 头插: 4.双链表的尾删和头删 尾删: 头删: …

ASP3605同步降压调节器——满足汽车电子严苛要求的电源芯片方案

ASP3605高效同步降压调节器,通过AEC-Q100 Grade1认证,输入电压4V至15V,输出电流5A,峰值效率94%。车规级型号ASP3605A3U支持-40C至125C工作温度,适用于ADAS、车载信息娱乐系统等场景。 面向汽车电子的核心功能设计 1. …

vue3+Ts+elementPlus二次封装Table分页表格,表格内展示图片、switch开关、支持

目录 一.项目文件结构 二.实现代码 1.子组件(表格组件) 2.父组件(使用表格) 一.项目文件结构 1.表格组件(子组件)位置 2.使用表格组件的页面文件(父组件)位置 3.演示图片位置 ele…

逆向中常见的加密算法识别

1、base64及换表 base64主要是将输入的每3字节(共24bit)按照每六比特分成一组,变成4个小于64的索引值,然后通过一个索引表得到4个可见的字符。 索引表为一个64字节的字符串,如果在代码中发现引用了这个索引表“ABCDEF…

【机器学习chp14 — 2】生成式模型—变分自编码器VAE(超详细分析,易于理解,推导严谨,一文就够了)

目录 二、变分自编码器 VAE 1、自编码器 AE (1)自编码器的基本结构与目标 1.1 编码器-解码器结构 1.2 目标函数:重构误差最小化 (2)自编码器与 PCA 的对比 2.1 PCA 与线性降维 2.2 非线性映射的优势 &#xf…

Linux 一步部署DHCP服务

#!/bin/bash #脚本作者和日期 #author: PEI #date: 20250319 #检查root权限 if [ "$USER" ! "root" ]; then echo "错误:非root用户,权限不足!" exit 0 fi #防火墙与高级权限 systemctl stop firewa…