💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ Reza Mobaraki
جدا سازی رشته در یک فایل
محمدعلی رضا حل شده توسط محمدعلی رضا

سلام میخواستم یه فایل رو با , جداسازی کنم ممنون میشم کمکم کنید :) 
یکم حجم فایل زیاده و هرگونه تغیری روش خیلی زمان بره

سلاااااااااااااااااااام

برای کار با فایل‌های طولانی بهتره از Generator استفاده کنی، البته بعضی وقتا هم مجبوری از Generator‌ها استفاده کنی.

طبق مساله ای که طرح کردی، من این کد رو نوشتم:

FILE_PATH = "RezaMobarakTextFile.txt"
NEW_FILE_PATH = "RezaMobarakTextFile2.txt"
def get_file_line_by_line(file_path):
    with open(file_path, mode="r") as file:
        for line in file:
            yield line
def append_a_line_to_file(line, file_path):
    with open(file_path, mode="a") as file:
        file.write(line)
def replace_space_with_comma(string):
    return string.replace(' ', ', ')
for line in get_file_line_by_line(file_path=FILE_PATH):
    new_line = replace_space_with_comma(string=line)
    append_a_line_to_file(line=new_line, file_path=NEW_FILE_PATH)

 

فایل کد رو هم میزارم.

 

تو این جلسه

https://7learn.ac/unit-python-generator

استاد Generator رو کامل توضیح دادن.

این مقاله

https://www.programiz.com/python-programming/generator

هم خوب Generator رو توضیح داده.

بهترین پاسخ
محمدعلی رضا ۲۵ مهر ۱۳۹۹، ۱۵:۲۳

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

 

import fileinput
FILE_PATH = "RezaMobarakTextFile.txt"
def replace_space_with_comma_in_every_line_of_file(file_path):
    for line in fileinput.input(file_path, inplace=True):
        line = line.replace(' ', ', ')
        print(line, end='')
if __name__ == "__main__":
    replace_space_with_comma_in_every_line_of_file(file_path=FILE_PATH)

 

فایل کد هم پیوست کردم.

محمدعلی رضا ۲۵ مهر ۱۳۹۹، ۱۶:۳۶