如何解決Python編程中路徑錯(cuò)誤導(dǎo)致文檔無(wú)法寫入的問(wèn)題?

關(guān)于python編程中路徑錯(cuò)誤導(dǎo)致文檔無(wú)法寫入的解決方案

在編寫python程序時(shí),有時(shí)會(huì)遇到因路徑錯(cuò)誤而無(wú)法將文檔寫入指定路徑的問(wèn)題。今天,我們將討論如何解決這種問(wèn)題,特別是在將多張圖片自動(dòng)排版并寫入word文檔的過(guò)程中。

首先,展示一下實(shí)現(xiàn)這一功能的代碼:

import os from pil import image from docx import document from docx.shared import inches from docx.enum.text import wd_paragraph_alignment from docx.oxml import oxmlelement  def create_word_document(image_folder, output_path):     # 獲取圖片文件列表     image_files = [f for f in os.listdir(image_folder) if f.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp'))]      if not image_files:         print("未找到任何圖片文件。")         return      # 創(chuàng)建word文檔     doc = document()     doc.add_heading('照片', level=1).alignment = wd_paragraph_alignment.center      # 每頁(yè)排版兩張照片     photos_per_page = 2     for i, image_file in enumerate(image_files, start=1):         if i % photos_per_page == 1:             # 添加新的一頁(yè)             section = doc.sections[-1]             footer = section.footer             footer.paragraphs[0].clear()  # 清除頁(yè)腳原有內(nèi)容             footer.paragraphs[0].add_run(f"第 {i // photos_per_page + 1} 頁(yè)").alignment = wd_paragraph_alignment.center              doc.add_page_break()          # 添加圖片和備注         img_path = os.path.join(image_folder, image_file)         img = image.open(img_path)         doc.add_picture(img_path, width=inches(3.0))         doc.add_paragraph(f"序號(hào):{i}")         doc.add_paragraph("備注:")      # 保存word文檔     doc.save(output_path)     print(f"word文檔已保存至: {output_path}")  if __name__ == "__main__":     # 指定圖片文件夾和輸出word文檔路徑     image_folder_path = "d:anzhuang/python/ima"     output_word_path = "d:anzhuang/python/output/"      create_word_document(image_folder_path, output_word_path)

運(yùn)行上述代碼時(shí),如果遇到類似下面的錯(cuò)誤:

d:anzhuangpythonpython.exe c:/users/admin/pycharmprojects/pythonproject/lianxi3.py traceback (most recent call last):   file "c:usersadminpycharmprojectspythonprojectlianxi3.py", line 51, in <module>     create_word_document(image_folder_path, output_word_path)   file "c:usersadminpycharmprojectspythonprojectlianxi3.py", line 40, in create_word_document     doc.save(output_path)   file "d:anzhuangpythonlibsite-packagesdocxdocument.py", line 151, in save     self._part.save(path_or_stream)   file "d:anzhuangpythonlibsite-packagesdocxpartsdocument.py", line 106, in save     self.package.save(path_or_stream)   file "d:anzhuangpythonlibsite-packagesdocxopcpackage.py", line 151, in save     packagewriter.write(pkg_file, self.rels, self.parts)   file "d:anzhuangpythonlibsite-packagesdocxopcpkgwriter.py", line 27, in write     phys_writer = physpkgwriter(pkg_file)   file "d:anzhuangpythonlibsite-packagesdocxopcphys_pkg.py", line 109, in __init__     self._zipf = zipfile(pkg_file, "w", compression=zip_deflated)   file "d:anzhuangpythonlibzipfile.py", line 1239, in __init__     self.fp = io.open(file, filemode) permissionerror: [errno 13] permission denied: 'd:anzhuang/python/output/'

我們嘗試通過(guò)提升管理員權(quán)限來(lái)解決無(wú)法寫入給定路徑的問(wèn)題,但仍然未能解決。這里我們來(lái)看看問(wèn)題出在哪里。

經(jīng)過(guò)仔細(xì)檢查,發(fā)現(xiàn)問(wèn)題在于輸出路徑的寫法。原代碼中的路徑是:

立即學(xué)習(xí)Python免費(fèi)學(xué)習(xí)筆記(深入)”;

output_word_path = "d:anzhuang/python/output/"

正確的方式應(yīng)該是:

output_word_path = "d:/anzhuang/python/output/"

windows系統(tǒng)中,當(dāng)路徑是相對(duì)盤符(例如,d:)時(shí),必須在盤符后緊跟一個(gè)/,否則系統(tǒng)會(huì)將路徑解釋為當(dāng)前工作目錄下的相對(duì)路徑,而不是絕對(duì)路徑。

因此,修改路徑后,代碼應(yīng)如下所示:

if __name__ == "__main__":     # 指定圖片文件夾和輸出Word文檔路徑     image_folder_path = "d:/ANZHUANG/PYTHON/IMA"     output_word_path = "d:/ANZHUANG/PYTHON/output/"      create_word_document(image_folder_path, output_word_path)

通過(guò)這個(gè)簡(jiǎn)單的修改,應(yīng)該能夠解決路徑錯(cuò)誤導(dǎo)致的文檔無(wú)法寫入問(wèn)題,并成功實(shí)現(xiàn)將多張圖片拖入固定文件夾后自動(dòng)用word進(jìn)行排版的功能。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享