🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ یازان علی‌آبادی
جدا سازی رشته در یک فایل
پروچیستا فرهنگ حل شده توسط پروچیستا فرهنگ

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

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

برای کار با فایل‌های طولانی بهتره از 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)

 

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

پروچیستا فرهنگ ۲۵ مهر ۱۳۹۹، ۱۶:۳۶