صفحه اصلی > وبلاگ > محتوای

چگونه می توان از ژنراتورها برای خواندن پرونده در پایتون استفاده کرد؟

Aug 08, 2025

Python ، یک زبان برنامه نویسی همه کاره و قدرتمند ، مجموعه ای از ویژگی ها و ابزارها را برای ساده سازی کارهای پیچیده ارائه می دهد. یکی از این ویژگی ها ژنراتورهایی است که یک نوع خاص از تکرار کننده است که به شما امکان می دهد دنباله ای از مقادیر را به صورت پرواز ایجاد کنید ، نه اینکه یک لیست کامل را به یکباره ایجاد کنید. این امر می تواند به ویژه در هنگام کار با پرونده های بزرگ مفید باشد ، زیرا این امکان را به شما می دهد تا داده ها را به صورت تدریجی پردازش کنید ، ذخیره حافظه و بهبود عملکرد را انجام دهید. من به عنوان یک تامین کننده ژنراتور ، مزایایی را که ژنراتورها می توانند برای انجام عملیات خواندن پرونده به ارمغان بیاورم ، دست اول دیده ام. در این پست وبلاگ ، من شما را از طریق فرآیند استفاده از ژنراتورها برای خواندن پرونده در پایتون ، برجسته کردن مزایای آنها و ارائه نمونه های عملی راهنمایی می کنم.

ژنراتورهای درک

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

در اینجا یک مثال ساده از یک عملکرد ژنراتور آورده شده است:

def Simple_generator (): عملکرد 1 عملکرد 2 عملکرد 3 ژن = Simple_generator () برای مقدار در ژن: چاپ (مقدار)

در این مثال ،زن بزرگ_عملکرد ژنراتور است که مقادیر 1 ، 2 و 3 را به دست می آورد. وقتی نمونه ای از ژنراتور را با استفاده از آن ایجاد می کنیمgen = Simple_generator ()، ما می توانیم با استفاده از آن تکرار کنیمبرایحلقه ، که هر مقدار را به عنوان تولید می کند.

مزایای استفاده از ژنراتورها برای خواندن پرونده

وقتی صحبت از خواندن پرونده می شود ، ژنراتورها نسبت به روشهای سنتی چندین مزیت ارائه می دهند. در اینجا برخی از مزایای اصلی:

کارایی حافظه

یکی از اصلی ترین مزایای استفاده از ژنراتورها برای خواندن پرونده ، راندمان حافظه آنها است. هنگامی که یک فایل بزرگ را با استفاده از یک روش سنتی می خوانید ، مانند خواندن کل پرونده در یک لیست ، باید حافظه کافی را اختصاص دهید تا کل پرونده را یکباره در حافظه ذخیره کنید. این می تواند مشکلی ایجاد کند اگر پرونده خیلی بزرگ باشد تا در حافظه قرار بگیرد و منجر بهحافظهبشر با ژنراتورها ، می توانید خط را به صورت خط بخوانید ، بدون نیاز به ذخیره کل پرونده در حافظه ، هر خط را به صورت خوانده شده پردازش کنید.

S50PRO spraying drones agriculture quotationSpraying Drones Agriculture

عمل

ژنراتورها همچنین می توانند عملکرد عملیات خواندن پرونده را بهبود بخشند. از آنجا که ژنراتورها مقادیر را به صورت پرواز تولید می کنند ، می توانند سریعاً پردازش داده ها را شروع کنند ، بدون اینکه منتظر بمانند که کل پرونده در حافظه خوانده شود. این امر می تواند به ویژه در هنگام کار با پرونده های بزرگ مفید باشد ، زیرا به شما امکان می دهد پردازش داده ها را به محض در دسترس بودن شروع کنید ، نه اینکه منتظر بارگیری کل پرونده باشید.

ارزیابی تنبل

ژنراتورها از ارزیابی تنبل استفاده می کنند ، به این معنی که آنها فقط در صورت نیاز مقادیر تولید می کنند. این امر می تواند مفید باشد که شما فقط نیاز به پردازش زیر مجموعه داده ها در یک پرونده داشته باشید ، زیرا به شما امکان می دهد بدون نیاز به خواندن آن در حافظه ، از داده های غیر ضروری پرش کنید.

با استفاده از ژنراتورها برای خواندن پرونده

اکنون که مزایای استفاده از ژنراتورها را برای خواندن فایل درک می کنیم ، بیایید به نحوه استفاده از آنها در عمل بپردازیم. در اینجا مثالی از استفاده از ژنراتور برای خواندن یک خط پرونده به صورت خط آورده شده است:

def read_file_line_by_line (file_path): با Open (file_path ، 'r') به عنوان پرونده: برای خط در پرونده: LINE LINE FILE_PATH = 'large_file.txt' gen = read_file_line_line (file_path) برای خط در ژنرال: print (line.strip ())

در این مثال ،read_file_line_by_lineتابع ژنراتور است که یک خط به خط می خواند. درباعبارت برای باز کردن پرونده در حالت خواندن وبرایتکراری را بیش از هر خط در پرونده حلقه کنید. سپس هر خط با استفاده ازبازدهکلمه کلیدی ، که به عملکرد اجازه می دهد اجرا را از جایی که دفعه بعد تکرار می شود ، از سر ببرد.

وقتی نمونه ای از ژنراتور را با استفاده از آن ایجاد می کنیمgen = read_file_line_by_line (file_path)، ما می توانیم با استفاده از آن تکرار کنیمبرایحلقه ، که هر خط را به عنوان تولید چاپ می کند. درنوار ()از روش برای حذف هر نوع فضای سفید یا دنباله دار از هر خط استفاده می شود.

پردازش پرونده های بزرگ با ژنراتورها

هنگام کار با پرونده های بزرگ ، اغلب پردازش داده ها در تکه ها به جای خط به خط ضروری است. این کار را می توان با استفاده از ژنراتور انجام داد که تعداد مشخصی از خطوط را همزمان می خواند. در اینجا مثالی از استفاده از ژنراتور برای خواندن پرونده در تکه ها آورده شده است:

def read_file_in_chunks (file_path ، chunk_size = 100): با باز (file_path ، 'r') به عنوان پرونده: chunk = [] برای خط در پرونده: chunk.append (خط) اگر لن (chunk) == chunk_size: chunk chunk = [] اگر قطعه: illiel read_file_in_chunks (File_Path) برای تکه در ژن

در این مثال ،read_file_in_chunksعملکرد ژنراتور است که پرونده ای را در تکه های اندازه مشخص می خواند. درchunk_sizeپارامتر تعداد خطوط خوانده شده در هر قطعه را تعیین می کند. دربرایتکراری را بیش از هر خط در پرونده حلقه کنید و هر خط را به آن اضافه کنیدتکهلیست وقتیتکهلیست به اندازه مشخص شده می رسد ، با استفاده ازبازدهکلمه کلیدی ، وتکهلیست تنظیم مجدد است.

وقتی نمونه ای از ژنراتور را با استفاده از آن ایجاد می کنیمgen = read_file_in_chunks (file_path)، ما می توانیم با استفاده از آن تکرار کنیمبرایحلقه ، که هر تکه خط را به عنوان تولید می کند.

پایان

در پایان ، ژنراتورها ابزاری قدرتمند و انعطاف پذیر برای خواندن پرونده در پایتون هستند. آنها چندین روش نسبت به روشهای سنتی ، از جمله کارایی حافظه ، عملکرد و ارزیابی تنبل ارائه می دهند. با استفاده از ژنراتورها ، می توانید پرونده های بزرگ را به صورت تدریجی پردازش کنید ، بدون اینکه کل پرونده را در حافظه ذخیره کنید. من به عنوان یک تأمین کننده ژنراتور ، شما را تشویق می کنم تا مزایای استفاده از ژنراتورها را در پروژه های پایتون خود ، به ویژه هنگام کار با پرونده های بزرگ ، کشف کنید.

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

منابع

  • مستندات پایتون: https://docs.python.org/3/tutorial/classes.html#generators
  • پایتون واقعی: https://realpython.com/introduction-to-python-generators/
  • کشاورزی هواپیماهای بدون سرنشین اسپری:/کشاورزی-machinery/drone/spraying-drones-agriculture.html
ارسال درخواست
چارلی ژانگ
چارلی ژانگ
چارلی به عنوان رئیس نوآوری کشاورزی در چونگ کینگ ماشین آلات جیاما ، جایی که او به بررسی فن آوری های جدید برای انقلابی در شیوه های کشاورزی می پردازد ، خدمت می کند. کار او شامل ادغام هوش مصنوعی و IoT در ماشین آلات کشاورزی برای عملیات باهوش تر و کارآمدتر است.