از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
خواندن و نوشتن فایل های MS Word در پایتون از طریق ماژول Python-Docx
سرفصلهای مطلب
ابزار 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 باید دارای محتوای زیر باشد:
برای مطالعه فایل فوق ابتدا 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 را نشان می دهد.
حتی میتوانیم با ایندکس کردن به یک پاراگراف خاص دسترسی پیدا کنیم 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 اضافه کرده اید به همراه سه هدر و یک تصویر مشاهده کنید.
نتیجه
این مقاله مروری کوتاه بر روش خواندن و نوشتن فایلهای MS Word با استفاده از python-docx
مدول. این مقاله روش خواندن پاراگراف ها را پوشش می دهد و از داخل یک فایل MS Word اجرا می شود. در نهایت، process در مورد نوشتن فایل های MS Word، افزودن پاراگراف، اجراها، هدرها و تصاویر به فایل های MS Word در این مقاله توضیح داده شده است.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-17 19:54:05