از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
دنباله های جدید را در پایتون حذف کنید
سرفصلهای مطلب
معرفی
مدیریت داده های رشته ای وظیفه ای است که اکثر نرم افزارها باید در برخی ظرفیت ها آن را انجام دهند. این رشتهها همیشه بهدرستی قالببندی نمیشوند، مانند رشتههایی که ممکن است دارای یک خط جدید انتهایی باشند که در واقع هیچ ارزشی به رشته اضافه نمیکند و میتواند حذف شود. این بایت شما را با اصول حذف خطوط جدید دنباله دار و روش استفاده از آن آشنا می کند rstrip()
روش برای رسیدن به این
چرا خطوط جدید دنباله رو حذف کنیم؟
دنبال کردن خطوط جدید، یا هر نوع فضای خالی انتهایی، می تواند باعث ایجاد مشکل در کد شما شود. آنها ممکن است بی ضرر به نظر برسند، اما می توانند اشکالاتی را معرفی کنند که ردیابی آنها دشوار است. به عنوان مثال، اگر دو رشته را با هم مقایسه می کنید، یکی با یک خط جدید دنباله دار و دیگری بدون آن، پایتون این دو رشته را با هم متفاوت در نظر می گیرد. اساسا همان با حذف خطوط جدید دنباله دار، می توانید مطمئن شوید که مقایسه رشته ها و سایر عملیات ها همانطور که انتظار دارید رفتار می کنند.
حذف یک خط جدید دنباله دار
یک خط جدید توسط کاراکتر نشان داده می شود \n
در پایتون فرض کنید یک رشته با یک خط جدید دنباله دار داریم:
s = "Hello, World!\n"
print(s)
وقتی این رشته را اجرا و چاپ می کنیم، می بینیم که خروجی در دو خط ظاهر می شود:
Hello, World!
خط جدید انتهایی باعث می شود که مکان نما پس از چاپ رشته به خط بعدی منتقل شود. اگر بخواهیم این خط جدید انتهایی را حذف کنیم، می توانیم از برش رشته استفاده کنیم:
s = "Hello, World!\n"
s = s(:-1)
print(s)
حال خروجی این خواهد بود:
Hello, World!
استفاده کردن s(:-1)
، ما یک رشته جدید ایجاد می کنیم که شامل هر کاراکتر از رشته است s
جز آخری این به طور موثر خط جدید آخر را حذف می کند.
با این حال، راههای بهتری برای مدیریت فضای خالی انتهایی وجود دارد که در بخش بعدی خواهیم دید.
استفاده کردن rstrip() برای حذف خطوط جدید دنباله دار
در حالی که برش رشته کار می کند، پایتون راه بصری تری برای حذف خطوط جدید دنباله دار با استفاده از rstrip()
روش. این روش یک کپی از رشته اصلی را با حذف فضاهای خالی انتهایی برمی گرداند. در اینجا روش استفاده از آن آورده شده است:
s = "Hello, World!\n"
s = s.rstrip()
print(s)
این همان خروجی قبلی را تولید می کند:
Hello, World!
این rstrip()
این روش مخصوصاً زمانی مفید است که می خواهید تمام فضاهای خالی انتهایی را حذف کنید، نه فقط خطوط جدید. همچنین خواناتر از برش رشته است و درک کد شما را آسانتر میکند.
استفاده کردن splitlines() برای حذف خطوط جدید دنباله دار
پایتون splitlines()
روش می تواند ابزار مفیدی در هنگام برخورد با رشته هایی باشد که دارای کاراکترهای خط جدید هستند. این روش یک رشته را به لیستی تقسیم می کند که در آن هر عنصر یک خط از رشته اصلی است.
در اینجا یک مثال ساده آورده شده است:
text = "Hello, World!\n"
print(text.splitlines())
این کد خروجی می دهد:
('Hello, World!')
همانطور که می بینید، splitlines()
به طور موثر خط جدید انتهایی را از رشته حذف می کند. با این حال، ممکن است دقیقاً همانطور که لازم است کار نکند زیرا یک لیست را برمی گرداند، نه یک رشته. اگر می خواهید یک رشته بدون خط جدید دریافت کنید، باید عناصر لیست را دوباره به هم بپیوندید.
text = "Hello, World!\n"
print(''.join(text.splitlines()))
این کد خروجی می دهد:
Hello, World!
درست مانند برش رشته، در حالی که این روش کار می کند، تقریباً به اندازه روش شهودی/خواندنی نیست. rstrip()
روش، که من توصیه می کنم.
مدیریت خطوط جدید دنباله دار در خواندن فایل
هنگام خواندن متن از یک فایل در پایتون، به احتمال زیاد با خطوط جدید دنباله دار مواجه می شوید. این به این دلیل است که هر خط در یک فایل متنی با یک کاراکتر خط جدید به پایان می رسد، و برخی از ویرایشگرهای متن (یعنی Atom) حتی در صورتی که قبلاً وجود نداشته باشد، نویسه های خط جدید را در انتهای یک فایل برای شما اضافه می کنند.
در اینجا یک مثال از روش مدیریت این موضوع آورده شده است:
with open('file.txt', 'r') as file:
lines = file.read().splitlines()
print(lines)
این splitlines()
روش در اینجا مناسب است زیرا نه تنها برای تقسیم محتویات فایل به خطوط استفاده می شود، بلکه خطوط جدید بعدی را نیز حذف می کند. نتیجه لیستی از خطوط بدون خطوط جدید است.
مدیریت خطوط جدید دنباله دار در ورودی کاربر
سناریوی دیگری که در آن خطوط جدید رایج است، ورودی کاربر است. بسته به روش دریافت ورودی از کاربر، خط جدید ممکن است همیشه وجود داشته باشد. این معمولاً به این دلیل است که کاربر برای ارسال ورودی باید «Enter» را بزند، که همچنین کلید ایجاد خطوط جدید در اکثر اجزای ورودی متن است. در این موارد، عاقلانه است که همیشه ورودی خود را با آن پاکسازی کنید rstrip()
محض احتیاط.
نتیجه
دنبال کردن خطوط جدید اغلب می تواند در هنگام برخورد با رشته ها در هر زبانی مشکل ساز باشد، اما خوشبختانه پایتون چندین روش برای مدیریت آنها ارائه می دهد. در این بایت، روش استفاده از برش رشته را بررسی کردیم، rstrip()
، و splitlines()
برای حذف خطوط جدید دنباله دار از یک رشته، و همچنین در مورد روش رسیدگی به خطوط جدید انتهایی هنگام خواندن از یک فایل یا دریافت ورودی کاربر بحث کردیم.
(برچسبها به ترجمه)# python
منتشر شده در 1402-12-27 09:09:05