جدا سازی رشته در یک فایل

پرسیده شده
فعالیت 1288 روز پیش
دیده شده 679 بار
0

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

فایل پیوست

Reza Mobaraki
Reza Mobaraki

25 مهر 99

1
حذف شده

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

برای کار با فایل های طولانی بهتره از 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 رو توضیح داده.

فایل پیوست

محمدعلی رضا

توسط

محمدعلی رضا

25 مهر 99

1
حذف شده

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

 

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)

 

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

فایل پیوست

محمدعلی رضا

توسط

محمدعلی رضا

25 مهر 99