پرسش

چطور یک فایل متنی رو به یک متغیر رشته‌ای بخونم و خطوط جدید رو حذف کنم؟

How can I read a text file into a string variable and strip newlines?

من می‌خوام یک فایل متنی رو در پایتون بخونم و محتویاتش رو به یک متغیر رشته‌ای ذخیره کنم. اما مشکل اینه که می‌خوام خطوط جدید (newline) رو حذف کنم تا همه چیز در یک خط باشه. چطور می‌تونم این کار رو انجام بدم؟

1403/06/04
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

برای این کار خیلی ساده می‌تونی از ترکیب دو تا تابع read() و replace() استفاده کنی. کد زیر دقیقاً همون کاری که می‌خوای رو انجام می‌ده:

with open('yourfile.txt', 'r') as file:
    data = file.read().replace('\n', '')

- توی این کد، فایل با نام 'yourfile.txt' باز می‌شه و تمام محتویاتش به عنوان یک رشته خونده می‌شه.

- تابع replace() تمام کاراکترهای newline (یعنی \n) رو پیدا می‌کنه و اون‌ها رو با یک فضای خالی (یا هر چیزی که دوست داری) جایگزین می‌کنه.

- در نهایت، همه متن فایل توی متغیر data ذخیره می‌شه و دیگه هیچ خط جدیدی توش نیست.

نکته: اگه فایل خیلی بزرگ باشه، بهتره که به جای خواندن همه محتوا به یکباره، از روش خط به خط استفاده کنی. برای این کار می‌تونی از یک حلقه استفاده کنی و هر خط رو جداگانه پردازش کنی.

اگر به دنبال یک راه حل پیشرفته‌تر هستی که از مدیریت حافظه بهینه استفاده کنه، می‌تونی از این روش استفاده کنی:

data = ""
with open('yourfile.txt', 'r') as file:
    for line in file:
        data += line.strip()

- هر خط جداگانه از فایل خونده می‌شه و با استفاده از متد strip()، فضای خالی و newlineها از ابتدا و انتهای خط حذف می‌شن.

- بعدش، خط بدون newline به متغیر data اضافه می‌شه.

این روش بهت کنترل بیشتری روی نحوه پردازش فایل می‌ده و برای فایل‌های بزرگ هم مناسب‌تره.

پاسخ: 1403/06/04
آخرین آپدیت: 1403/08/03