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())