Оптимизация поиска и замены больших файлов в Python
Яполный новичок на Python или любой серьезный язык программирования в этом отношении. Я наконец получил прототип кода для работы, но я думаю, что он будет слишком медленным.
Моя цель - найти и заменить некоторые китайские иероглифы во всех файлах (они являются csv) в каталоге с целыми числами согласно имеющемуся у меня csv-файлу. Файлы хорошо нумеруются по году-месяцу, например 2000-01.csv, и будут единственными файлами в этом каталоге.
Я буду перебирать около 25 файлов по 500 МБ каждый (и около миллиона строк). Словарь, который я буду использовать, будет иметь около 300 элементов, и я буду менять юникод (китайский символ) на целые числа. Я попытался выполнить тестовый прогон, и, предполагая, что все масштабируется линейно (?), Похоже, что для его запуска потребуется около недели.
Заранее спасибо. Вот мой код (не смейтесь!):
# -*- coding: utf-8 -*-
import os, codecs
dir = "C:/Users/Roy/Desktop/test/"
Dict = {'hello' : 'good', 'world' : 'bad'}
for dirs, subdirs, files in os.walk(dir):
for file in files:
inFile = codecs.open(dir + file, "r", "utf-8")
inFileStr = inFile.read()
inFile.close()
inFile = codecs.open(dir + file, "w", "utf-8")
for key in Dict:
inFileStr = inFileStr.replace(key, Dict[key])
inFile.write(inFileStr)
inFile.close()