首页 > 解决方案 > 如何通过将目录路径作为 Python 中的用户输入将文档(即 .docx 文件)转换为 Python 中的 .pdf?

问题描述

我试过这个,但在转换函数中“\”被传递而不是“\”。我是否已经从用户那里输入了目录路径,然后通过查找最后一个索引“\”和“。”来检查文件是否是 doc 文件。我已经提取了文件名并通过从将创建pdf的目录中替换变量dpath中的do来修改它,之后我试图用'\'替换'\'以便我可以将值传递给转换函数,这就是我卡住的地方。

from docx2pdf import *
class convert:
 def doc2pdf():
   dpath="C:\ Users\ Rj rouma\Desktop\ do.pdf"
   try:
     n=input("Enter the file location : ")
     if(n.endswith(".docx") or n.endswith(".doc")):
       a=n.rfind('\ ')
       b=n.rfind('.')
       s=n[a+2 :b ]
       rep=dpath.replace('do',s)
       n1=str(n.replace('\\ ','\ '))
       rep1=str(rep.replace('\\ ','\ '))
       print(n1," ",rep1)
       convert(n,rep1)
   except:
       print("Check the location path correctly")

 if __name__=='__main__':
  ob= doc2pdf()

标签: python

解决方案


我只编程了 8 个月,但在那段时间里,我发现我最喜欢的获取和处理路径对象的方法是使用模块pathlib,以及需要任何用户输入时的 tkinter (更具体地说,filedialog 。在我看来,虽然你的方法可以工作,但我认为它很难阅读,因此当你试图识别部分功能时很容易迷失方向。坦率地说,它的麻烦多于它的价值。

from pathlib import Path
from tkinter.filedialog import askopenfilename

# Require user to select a file. Returns the full file path
filepath = askopenfilename(title='Select a document file.', filetypes=[('Word document', '*.docx')])
print('Full filepath:', filepath)

# Make the filepath string a Path object so you can use Path's methods.
path = Path(filepath)

# Profit
print('Full path:', path)
print('Extention only: ', path.suffix)
print('Last component in path: ', path.stem)
print('Direct parent of file: ', path.parent)

输出为:

Full filepath: C:/Users/User/Folder_A/Folder_B/word_doc.docx
Full path: C:\Users\User\Folder_A\Folder_B\word_doc.docx
Extension only:  .xlsx
Last component in path:  word_doc
Direct parent of file:  C:\Users\User\Folder_A\Folder_B

我没有使用过 docx2pdf,所以我无法帮助转换实际文件,但是 pathlib.Path 将允许您根据需要对路径字符串进行切片。


推荐阅读