وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

خواندن و نوشتن فایل های MS Word در پایتون از طریق ماژول Python-Docx

0 127
زمان لازم برای مطالعه: 5 دقیقه


ابزار MS Word از مجموعه مایکروسافت آفیس یکی از پرکاربردترین ابزارها برای نوشتن اسناد متنی، ساده و پیچیده است. اگرچه انسان‌ها می‌توانند به راحتی اسناد MS Word را بخوانند و بنویسند، با فرض اینکه نرم‌افزار آفیس را نصب کرده‌اید، اغلب لازم است متنی را از اسناد Word در برنامه دیگری بخوانید.

به عنوان مثال، اگر در حال توسعه یک برنامه پردازش زبان طبیعی در پایتون هستید که فایل‌های MS Word را به عنوان ورودی می‌گیرد، باید قبل از اینکه بتوانید فایل‌های MS Word را در پایتون بخوانید. process متن. به طور مشابه، اغلب اوقات شما نیاز دارید که متنی را در اسناد MS Word به عنوان خروجی بنویسید، که برای مثال می تواند یک گزارش تولید شده به صورت پویا برای دانلود باشد.

در این مقاله روش خواندن و نوشتن فایل های MS Word در پایتون را خواهید دید.

نصب کردن python-docx کتابخانه

چندین کتابخانه وجود دارد که می توان از آنها برای خواندن و نوشتن فایل های MS Word در پایتون استفاده کرد. با این حال، ما از آن استفاده خواهیم کرد python-docx ماژول به دلیل سهولت استفاده. موارد زیر را اجرا کنید pip فرمان در شما terminal برای دانلود python-docx ماژول مطابق شکل زیر:

$ pip install python-docx

خواندن فایل های MS Word با python-docx مدول

در این بخش روش خواندن متن از فایل های MS Word را مشاهده خواهید کرد python-docx مدول.

یک فایل MS Word جدید ایجاد کنید و نام آن را به “my_word_file.docx” تغییر دهید. من فایل را در root از دایرکتوری “E” من، اگرچه می توانید فایل را در هر جایی که بخواهید ذخیره کنید. فایل my_word_file.docx باید دارای محتوای زیر باشد:

خواندن فایل های ms word در python

برای مطالعه فایل فوق ابتدا import را docx ماژول و سپس یک شی از Document کلاس از docx مدول. مسیر my_word_file.docx را به سازنده the منتقل کنید Document کلاس، همانطور که در اسکریپت زیر نشان داده شده است:

import docx

doc = docx.Document("E:/my_word_file.docx")

این Document شی کلاس doc اکنون می توان برای خواندن محتوای my_word_file.docx استفاده کرد.

خواندن پاراگراف ها

هنگامی که یک شی از Document کلاس با استفاده از مسیر فایل، می توانید از طریق به تمام پاراگراف های سند دسترسی داشته باشید paragraphs صفت. یک خط خالی نیز به عنوان یک پاراگراف توسط the خوانده می شود Document. بیایید تمام پاراگراف ها را از my_word_file.docx واکشی کنیم و سپس تعداد کل پاراگراف ها را در سند نمایش دهیم:

all_paras = doc.paragraphs
len(all_paras)

خروجی:

10

در حال حاضر ما به صورت تکراری print تمام پاراگراف های فایل my_word_file.docx:

for para in all_paras:
    print(para.text)
    print("-------")

خروجی:

-------
Introduction
-------

-------
Welcome to rasanegar.com
-------
The best site for learning Python and Other Programming Languages
-------
Learn to program and write code in the most efficient manner
-------

-------
Details
-------

-------
This website contains useful programming articles for Java, Python, Spring etc.
-------

خروجی تمام پاراگراف های فایل Word را نشان می دهد.

پیشنهاد می‌کنیم بخوانید:  روش ارسال ایمیل با boto و SES

حتی می‌توانیم با ایندکس کردن به یک پاراگراف خاص دسترسی پیدا کنیم paragraphs ویژگی مانند یک آرایه اجازه دهید print بند 5 در پرونده:

single_para = doc.paragraphs(4)
print(single_para.text)

خروجی:

The best site for learning Python and Other Programming Languages

خواندن اجرا می شود

اجرا در یک سند word، دنباله ای پیوسته از کلماتی است که ویژگی های مشابهی دارند، مانند اندازه فونت، شکل فونت، و سبک فونت مشابه. به عنوان مثال، اگر به خط دوم my_word_file.docx نگاه کنید، حاوی متن است Welcome to rasanegar.com، متن اینجاست Welcome to با فونت ساده است، در حالی که متن rasanegar.com پررنگ است از این رو، متن Welcome to به عنوان یک اجرا در نظر گرفته می شود، در حالی که متن با چهره پررنگ rasanegar.com به عنوان یک اجرا دیگر در نظر گرفته می شود.

به طور مشابه، “یادگیری برنامه نویسی و نوشتن کد به روش” و “کارآمدترین روش” به عنوان دو اجرای متفاوت در پاراگراف “یادگیری برنامه نویسی و نوشتن کد به کارآمدترین روش” در نظر گرفته می شوند.

برای دریافت تمام اجراها در یک پاراگراف، می توانید از run دارایی از paragraph ویژگی از doc هدف – شی.

بیایید تمام اجراهای پاراگراف شماره 5 (شاخص چهارم) را در متن خود بخوانیم:

single_para = doc.paragraphs(4)
for run in single_para.runs:
    print(run.text)

خروجی:

The best site for
learning Python
 and Other
Programming Languages

به همین ترتیب، اسکریپت زیر تمام اجراهای پاراگراف ششم فایل my_word_file.docx را چاپ می کند:

second_para = doc.paragraphs(5)
for run in second_para.runs:
    print(run.text)

خروجی:

Learn to program and write code in the
most efficient manner

نوشتن فایل های MS Word با python-docx مدول

در بخش قبل، روش خواندن فایل های MS Word در پایتون را با استفاده از python-docx مدول. در این بخش روش نوشتن فایل‌های MS Word را مشاهده می‌کنید python-docx مدول.

برای نوشتن فایل های MS Word، باید یک شی از آن ایجاد کنید Document کلاس با سازنده خالی یا بدون ارسال نام فایل.

mydoc = docx.Document()

نوشتن پاراگراف ها

برای نوشتن پاراگراف ها می توانید از add_paragraph() روش از Document شی کلاس هنگامی که یک پاراگراف را اضافه کردید، باید با آن تماس بگیرید save() روش روی را Document شی کلاس مسیر فایلی که می خواهید پاراگراف خود را در آن بنویسید به عنوان پارامتر به آن ارسال می شود save() روش. اگر فایل از قبل وجود نداشته باشد، یک فایل جدید ایجاد می شود، در غیر این صورت پاراگراف در انتهای فایل MS Word موجود اضافه می شود.

اسکریپت زیر یک پاراگراف ساده را در یک فایل MS Word ایجاد شده با نام my_written_file.docx می نویسد.

mydoc.add_paragraph("This is first paragraph of a MS Word file.")
mydoc.save("E:/my_written_file.docx")

هنگامی که اسکریپت فوق را اجرا کردید، باید یک فایل جدید “my_written_file.docx” را در دایرکتوری که در آن مشخص کرده اید مشاهده کنید. save() روش. در داخل فایل، باید یک پاراگراف را مشاهده کنید که عبارت “این اولین پاراگراف یک فایل MS Word است.”

پیشنهاد می‌کنیم بخوانید:  چگونه بررسی کنیم که آیا کلید در شی جاوا اسکریپت وجود دارد یا نه، شیء در جاوا اسکریپت مجموعه ای نامرتب از جفت های کلید-مقدار (کلید: مقدار) است. هر کلید به عنوان یک ویژگی شناخته می شود و رشته ای است که یک نام ویژگی را نشان می دهد. اگر یک غیر رشته به عنوان کلید داده شود، نمایش رشته ای آن استفاده خواهد شد. مقدار یک دارایی می تواند از هر داده ای باشد...

بیایید یک پاراگراف دیگر به my_written_file.docx اضافه کنیم:

mydoc.add_paragraph("This is the second paragraph of a MS Word file.")
mydoc.save("E:/my_written_file.docx")

این پاراگراف دوم در انتهای محتوای موجود در my_written_file.docx اضافه خواهد شد.

نوشتن اجرا می شود

همچنین می توانید اجراها را با استفاده از python-docx مدول. برای نوشتن runs، ابتدا باید یک دسته برای پاراگراف که می‌خواهید اجرا را به آن اضافه کنید، ایجاد کنید. به مثال زیر توجه کنید تا ببینید چگونه انجام می شود:

third_para = mydoc.add_paragraph("This is the third paragraph.")
third_para.add_run(" this is a section at the end of third paragraph")
mydoc.save("E:/my_written_file.docx")

در اسکریپت بالا یک پاراگراف با استفاده از add_paragraph() روش از Document شی کلاس mydoc. این add_paragraph() متد یک دسته برای پاراگراف تازه اضافه شده برمی گرداند. برای افزودن یک اجرا به پاراگراف جدید، باید با شماره تماس بگیرید add_run() روش روی دسته پاراگراف متن اجرا به شکل یک رشته به قسمت ارسال می شود add_run() روش. در نهایت باید با شماره تماس بگیرید save() روش ایجاد فایل واقعی

همچنین می توانید هدرها را به فایل های MS Word اضافه کنید. برای انجام این کار، باید با شماره تماس بگیرید add_heading() روش. اولین پارامتر به add_heading() متد رشته متنی هدر است و پارامتر دوم اندازه هدر است. اندازه هدر از 0 شروع می شود و 0 سرصفحه سطح بالایی است.

اسکریپت زیر سه هدر سطح 0، 1 و 2 را به فایل my_written_file.docx اضافه می کند:

mydoc.add_heading("This is level 1 heading", 0)
mydoc.add_heading("This is level 2 heading", 1)
mydoc.add_heading("This is level 3 heading", 2)
mydoc.save("E:/my_written_file.docx")

افزودن تصاویر

برای افزودن تصاویر به فایل های MS Word می توانید از add_picture() روش. مسیر تصویر به عنوان پارامتر به آن ارسال می شود add_picture() روش. همچنین می توانید عرض و ارتفاع تصویر را با استفاده از docx.shared.Inches() صفت. اسکریپت زیر یک تصویر از سیستم فایل محلی به فایل ورد my_written_file.docx اضافه می کند. عرض و ارتفاع تصویر به ترتیب 5 و 7 اینچ خواهد بود:

mydoc.add_picture("E:/eiffel-tower.jpg", width=docx.shared.Inches(5), height=docx.shared.Inches(7))
mydoc.save("E:/my_written_file.docx")

پس از اجرای تمام اسکریپت های Writing MS Word Files با python-docx بخش ماژول این مقاله، فایل نهایی my_written_file.docx شما باید به شکل زیر باشد:

نوشتن فایل های ms word در python

در خروجی می توانید سه پاراگراف را که به فایل MS word اضافه کرده اید به همراه سه هدر و یک تصویر مشاهده کنید.

نتیجه

این مقاله مروری کوتاه بر روش خواندن و نوشتن فایل‌های MS Word با استفاده از python-docx مدول. این مقاله روش خواندن پاراگراف ها را پوشش می دهد و از داخل یک فایل MS Word اجرا می شود. در نهایت، process در مورد نوشتن فایل های MS Word، افزودن پاراگراف، اجراها، هدرها و تصاویر به فایل های MS Word در این مقاله توضیح داده شده است.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-17 19:54:05

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید