程序员都看不懂的代码

   pip install pywin32

import os                              # 导入系统功能模块
from win32com.client import Dispatch, DispatchEx  # 导入win32com模块的client包下的函数
from win32com.client import constants  # 导入win32com模块的client包下的保存COM常量的类
from win32com.client import gencache   # 导入win32com模块的client包下的gencache()函数
import re                              # 导入正则表达式模块

def wordtopdf(filelist,targetpath):
    valueList = []
    try:
        gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}', 0, 8, 4)
        # 开始转换
        w = Dispatch("Word.Application")
        for fullfilename in filelist:
            # 分割文件路径和文件名,其中,filepath表示文件路径;filename表示文件名
            (filepath,filename) = os.path.split(fullfilename) 
            softfilename = os.path.splitext(filename)  # 分割文件名和扩展名
            os.chdir(filepath) 
            doc = os.path.abspath(filename)
            os.chdir(targetpath)
            pdfname = softfilename[0] + ".pdf"
            output = os.path.abspath(pdfname)
            pdf_name = output

            # 文档路径需要为绝对路径,因为Word启动后的当前路径不是调用脚本时的当前路径
            try:                    # 捕捉异常
                doc = w.Documents.Open(doc, ReadOnly=1)
                doc.ExportAsFixedFormat(output, constants.wdExportFormatPDF, 
                         Item=constants.wdExportDocumentWithMarkup,
                         CreateBookmarks=constants.wdExportCreateHeadingBookmarks)
            except Exception as e:        # 处理异常
                print(e)
            if os.path.isfile(pdf_name):    # 判断文件是否存在
                valueList.append(pdf_name)    # 添加到文件列表中
            else:
                print('转换失败!')
                return False
        w.Quit(constants.wdDoNotSaveChanges)    # 退出Word应用程序
        return valueList                # 返回生成的PDF文件列表
    except TypeError as e:
        print('出错了!')
        print(e)
        return False

'''获取指定目录下的文件
   filepath:要遍历的目录
   filelist_out:输出文件列表
   file_ext:文件的扩展名,默认为任何类型的文件
'''
def getfilenames(filepath='',filelist_out=[],file_ext='all'):
    # 遍历filepath下的所有文件,包括子目录下的文件
    for fpath, dirs, fs in os.walk(filepath):
        for f in fs:
            fi_d = os.path.join(fpath, f)
            if file_ext == '.doc':                # 遍历Word文档文件
                if os.path.splitext(fi_d)[1] in ['.doc','.docx']:    # 判断是否为Word文件
                    filelist_out.append(re.sub(r'\\','/',fi_d))    # 添加到路径列表中
            else:
                if  file_ext == 'all':                # 要获取所有文件的情况
                    filelist_out.append(fi_d)            # 将文件路径添加到路径列表中
                elif os.path.splitext(fi_d)[1] == file_ext:    # 要获取除了Word文件以外的文件
                    filelist_out.append(fi_d)        # 将文件路径添加到路径列表中
                else:
                    pass
        filelist_out.sort()                # 对路径进行排序
    return filelist_out                    # 返回文件完整路径列表

if __name__ == '__main__':
    sourcepath = r"E:/learn/test/doc/temp"        # 指定源路径(Word文档所在路径)
    targetpath = r"E:/learn/test/doc/pdf/"        # 指定目标路径(PDF文件保存路径)
    filelist = getfilenames(sourcepath,[],'.doc')    # 获取Word文件路径
    valueList = wordtopdf(filelist,targetpath)        # 实现将Word文档批量转换为PDF文件
    if valueList:
        print("转换成功!")
    else:
        print("没有要转换的Word文档或者转换失败!")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 如果在学习C语言过程中遇到代码看不懂的情况,可以尝试以下方法: 1. 仔细阅读代码注释:在阅读代码之前,先看一下代码中的注释。注释是代码编写者对代码的解释和说明,可以帮助读者更好地理解代码。 2. 分析代码结构:对于一些大型的代码文件,可以先分析代码结构。可以先查看函数、变量、常量的定义,然后找到代码的入口函数,从入口函数开始阅读代码,理清代码的执行流程。 3. 利用IDE的调试功能:IDE提供了很多调试功能,例如断点调试、单步调试等,可以帮助我们逐行执行代码,查看变量的值和执行结果,从而更好地理解代码。 4. 查找相关文档和资料:如果遇到了特殊的语法或者函数,可以查找相关的文档和资料,例如C语言的官方文档、教程和书籍等。 5. 向他人求助:如果以上方法都无法解决问题,可以向他人求助,例如向老师、同学或者在线的编程社区提问。 ### 回答2: 在学习C语言的过程中,遇到代码看不懂是很常见的情况。以下是一些应对方法: 1. 理解基础知识:首先要确保对C语言的基础知识有充分的理解。只有掌握了语言的基础概念和语法规则,才能更容易理解和阅读代码。 2. 深入学习:如果遇到看不懂代码,可以通过阅读相关的教材、参考书籍或在线教程,深入了解相关概念和技术原理。 3. 参考文档和资源:C语言有丰富的文档和资源供参考。可以查阅C语言标准规范、编程手册或官方文档。另外,网络上也有很多开源项目和社区讨论,可以借鉴和参考他人的代码和解决方案。 4. 调试和实践:在学习过程中,多进行调试和实践。通过输出变量的值、加入调试语句或利用调试工具,可以更深入地了解代码的执行过程,有助于理解整个代码的逻辑。 5. 寻求帮助:如果自己无法理解代码,可以向他人寻求帮助。可以向同学、老师、论坛或社区提问,他们可能会提供解答或指导,帮助你理解代码。 6. 逐步分析:将代码分解为小块,逐步分析每一行代码的作用和功能,再将这些小块组合在一起,逐步理解整个程序的运行过程。这样有助于逐步解决问题,并提高代码的可读性。 最重要的是要保持积极的学习态度和耐心。学习C语言需要时间和实践,遇到困难是正常的,重要的是不断学习和进步。 ### 回答3: 学习C语言过程中遇到代码看不懂的情况是很常见的,这时可以采取以下几个方法来解决。 首先,要充分利用学习资源。可以查阅相关的教材、资料、在线教程和编程论坛等,理解相关概念和语法规则。同时,也可以通过观看视频教程或参加线下培训来加深对C语言的理解。这些学习资源能帮助我们理解代码的结构和功能。 其次,要注重实践和编程练习。通过动手实践编写代码,能够加深对C语言的理解和运用。可以通过编写小程序、解决简单问题或参与开源项目等方式来提高对C语言的熟练度。在实践中,我们可以通过调试程序、观察变量的变化及输出结果等方式来深入理解代码的执行流程。 另外,也可以寻求他人的帮助。可以向老师、同学或其他有经验的程序员请教,分享自己遇到的问题或困惑,借助他们的知识和经验来理解代码。此外,还可以参加相关的讨论组、社区或论坛,在集体智慧中解决问题。 最后,要保持耐心和持续学习的态度。学习C语言需要时间和努力,不要因为看不懂代码而灰心丧气。要保持积极的学习心态,不断学习和探索,相信自己的技能和能力会不断提高。 总之,学习C语言中遇到看不懂代码是正常的,需要充分利用学习资源,注重实践和编程练习,寻求他人的帮助,并保持耐心和持续学习的态度,这样就能够逐渐理解和掌握C语言的代码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金枝玉叶9

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值