Dosyaları Karşılaştırıp En Yenilerini Dataframe'e Ekleme

Merhaba, acaba aşağıdaki yöntemin yardımı dokunur mu?

İki tane dizin var diyelim: Birinin adı yol1, diğerinin adı yol2:

yol1’in içinde 2 tane excel dosyası ve 1 tane text dosyası var.
yol2’nin içinde de 2 tane excel dosyası ve diyelim 1 mp3 dosyası var.
Yani her iki dizinde eşit sayıda dosya var.
Bu excel dosyalarının isimleri aynı, ancak hücrelerdeki veriler ve dosyaların değiştirilme zamanları farklı.

Şu başlıktaki yönteme aşağıdaki “karsilastir” fonksiyonunu ekleyince nasıl bir sonuç alıyorsunuz?

import pandas as pd
import xlsxwriter
import numpy as np
import os


def dosyadan(kaynak, hedef):
    oku = pd.read_excel(kaynak, header=None)
    workbook = xlsxwriter.Workbook(hedef)
    worksheet = workbook.add_worksheet()
    satir = 0
    for i in range(len(oku.values)):
        sutun = 0
        for j in oku.values[0]:
            sec = pd.read_excel(kaynak, parse_cols="{0}:{0}".format(j), header=None)
            df = pd.DataFrame(sec, index=[satir])
            numpy_data = df.get_values()
            string_data = np.array2string(numpy_data).replace("[", "").replace("]", "").replace("'", "")
            worksheet.write(satir, sutun, string_data)
            sutun += 1
        satir += 1
    workbook.close()


def dizinden(kaynak_dizin, hedef_dizin):
    if not os.path.exists(hedef_dizin):
        os.mkdir(hedef_dizin)
    for i in os.listdir(kaynak_dizin):
        if i.endswith("xlsx") or i.endswith("xls"):
            kaynak_ = os.sep.join([kaynak_dizin, i])
            hedef_ = os.sep.join([hedef_dizin, i])
            dosyadan(kaynak_, hedef_)


def karsilastir(dizin1, dizin2, hedef):
    for i, j in zip(os.listdir(dizin1), os.listdir(dizin2)):
        if i.endswith("xlsx") or i.endswith("xls"):
            dosya1 = os.path.join(dizin1, i)
            zaman1 = os.stat(dosya1).st_mtime
            if j.endswith("xlsx") or j.endswith("xls"):
                dosya2 = os.path.join(dizin2, j)
                zaman2 = os.stat(dosya2).st_mtime
                if i == j:
                    if zaman1 > zaman2:
                        dosyadan(dosya1, os.path.join(hedef, i))
                    else:
                        dosyadan(dosya2, os.path.join(hedef, j))
                

if __name__ == "__main__":
    # Aşağıdaki yolları ve hedefi kendi bilgisayarınızdaki
    # klasör düzenine göre değiştirin.
    yol1 = os.path.join(os.getcwd(), "yol1")
    yol2 = os.path.join(os.getcwd(), "yol2")
    karsilastir(yol1, yol2, os.getcwd())
1 Beğeni