Dosya sıralama betiğiGeliştirme ve Özelleştirme

Dağınık bir klasörü kurallarınıza göre türe, tarihe ya da ada göre alt klasörlere ayıran bir Python betiği

Genellikle 15 dakika içinde hazırRevizyonlar dahilKalite kontrolü
Paketler
Ödeme korumasıAyrıntılar
  • Paket kapsamındaki revizyonlar ücretsizdir.
  • Teslimattan sonraki 3 gün içinde yanıt vermezseniz iş otomatik olarak onaylanır.

Para, ödeme yaptığınızda bloke edilir ve yalnızca işi onayladığınızda aktarılır.

Dağınık bir klasörü kurallarınıza göre türe, tarihe ya da ada göre alt klasörlere ayıran bir Python betiği

Örnek sonuç

Standart paket için örnek

Merging the monthly sales files of 9 shops into one Excel report

How it is run

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Folder: sales/2026-10, 9 files found
2026-11-02 09:14:03 INFO  shop-01.csv: 1,284 rows
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 rows
2026-11-02 09:14:04 WARN  shop-07.csv: 3 rows without a price skipped (lines 88, 412, 913)
2026-11-02 09:14:05 INFO  Done: 10,412 rows -> report-2026-10.xlsx (sheets "Sales" and "Totals")

Settings, not code

The column names of each shop live in settings.ini, so a new shop or a renamed column is a line there:

[columns]
date = Date, Sale date, Day
product = Product, Item, Name
quantity = Qty, Quantity, Pcs
price = Price, Unit price

A part of the code

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Reads one shop's file and gives it the report's column names."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: no column for '{name}' (looked for {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Files: a ZIP archive with merge_sales.py (310 lines), settings.ini, requirements.txt and a README with installing Python, running the script and what each message in the log means. The client runs it on their own computer.

Client: a small chain of 9 stationery shops; each shop sends its sales for the month as a CSV or Excel file, with slightly different column names. Task: one script that reads every file in a folder, brings the columns to one shape, and writes a single Excel report with all sales and a sheet of totals by shop.

Müşteri ve tüm ayrıntılar kurgusaldır.

Bu hizmet hakkında

Bir İndirilenler klasörü, ortak bir tarama klasörü ya da bir fotoğraf makinesi kartı kısa sürede binlerce karışık dosyaya dönüşür. Bu Python betiği onları kurallarınıza göre ait oldukları yere koyar: türe göre (PDF'ler Belgeler'e, fotoğraflar Resimler'e), tarihe göre yıl ve ay klasörlerine ya da addaki kelimelere göre, örneğin bir müşteri adı ya da fatura numarası. Dosyaları kopyalayabilir ya da taşıyabilir, gereken klasörleri oluşturur ve aynı adlı bir dosya zaten varsa onun yerine geçmek yerine bir numara ekler. İstediğiniz klasör düzenini ve kuralları gönderin. Betiği kendi bilgisayarınızda kendiniz çalıştırırsınız, bu yüzden önce bir kopyada deneyin. Hiçbir şey silinmez: dosyalar yalnızca yer değiştirir ve yalnızca belirttiğiniz klasörlerin içinde.

Neler dahil

  • Neler alırsınızPython betiğini, adım adım talimatlar içeren bir README dosyasını ve Standart paketten itibaren klasörlerinizi ve kurallarınızı içeren bir ayar dosyasını barındıran bir ZIP arşivi; kod sipariş sayfasında da gösterilir.
  • Türe, tarihe ya da ada göreBelirlediğiniz kurallar, belirlediğiniz sırayla
  • Kopyala ya da taşıSiz seçersiniz; orijinaller yerinde kalabilir
  • Adlarla güvenliAdı alınmış bir dosya numara alır, hiçbir şeyin yerine geçilmez
  • Deneme çalıştırmasıStandart paketten itibaren, neyin nereye gideceğini yalnızca listeleyen bir çalıştırma
  • Okunabilir kodYorumlarla; sonradan kural eklemek kolay

Nasıl çalışır

  1. 1
    Kurallarİstediğiniz klasörleri ve dosyaların onlara nasıl gideceğini anlatırsınız
  2. 2
    KodBetiği ve çalıştırma kılavuzunu yazarız
  3. 3
    DeneyinKlasörün bir kopyasında çalıştırırsınız
  4. 4
    DeğişikliklerPaketiniz kapsamında değişiklik ister, varsa hata mesajını gönderirsiniz

Sizden neler gerekiyor

Hangi klasörün sıralanacağı ve içinde yaklaşık kaç dosya olduğu, sonunda olmasını istediğiniz klasörler ve her biri için kural: dosya türleri, tarih (dosyadan ya da adından alınan) ya da addaki kelimeler. Dosyaların kopyalanacağı mı taşınacağı mı, hiçbir kurala uymayan dosyalarla ne yapılacağı ve sisteminiz: Windows, macOS ya da Linux. Klasörün bir ekran görüntüsü ya da 10-20 dosya adından oluşan bir liste çok yardımcı olur.

Size soracaklarımız:

  • Hangi klasörün sıralanması gerekiyor?
  • Hangi klasörleri oluşturmalı, ne nereye gitmeli?
  • Kopyala mı taşı mı?
  • Nerede çalışacak?

Paketleri karşılaştırın

PaketlerTemelTek klasör, tek kural$16StandartAyarlı sıralama$33PremiumSıralama aracı$67
Teslim süresi1 gün2 gün3 gün
Revizyonlar123
Koden fazla 150 satıren fazla 400 satıren fazla 1.000 satır
Kod dosyası1en fazla 3en fazla 8
Ayar dosyasıHayırEvetEvet
Anlaşılır hata mesajları ve logHayırEvetEvet
Çalıştırma seçenekleri ve zamanlanmış çalıştırma kılavuzuHayırHayırEvet
Kurulum ve çalıştırma kılavuzu (README)EvetEvetEvet
DilPythonPythonPython
Sipariş ver TemelSipariş ver StandartSipariş ver Premium

Ödeme koruması

Sipariş verirken ödersiniz, ancak para yalnızca onaylanan iş için aktarılır.

  • Sabit fiyatPaket fiyatı, ödeme yaptıktan sonra değişmez.
  • Para bloke edilirÖdeme yaptığınızda tutar yalnızca bloke edilir. İşi onayladığınızda hizmete aktarılır.
  • Teslimattan önce kontrolHer sonuç size ulaşmadan önce kalite kontrolünden geçer ve onaylamadan önce sipariş sayfasında görürsünüz.
  • Ücretsiz revizyonlarBrifiniz kapsamında, paketin izin verdiği sayıda değişiklik isteyin.
  • 3 gün sonra onayTeslimattan sonraki 3 gün içinde işi onaylamaz veya değişiklik istemezseniz iş otomatik olarak onaylanır. Teslimattan sonra sipariş sohbetine yazarsanız sipariş bekletilir; yanıt verdikten sonra 3 günlük süreyi yeniden başlatabiliriz ve bunu sohbette bildiririz.
  • Yeniden yapım veya tam iadeSonuç brifinize uymuyorsa ve revizyonlar sorunu çözmediyse ya da iş teslim süresinin iki katından uzun sürerse sipariş sohbetine yazın: işi yeniden yaparız veya ödemenin tamamını iade ederiz.
Nasıl çalışır →

Sorular ve yanıtlar

Kopyaları ya da gereksiz dosyaları silebilir mi?

Hiçbir şey silmez. Hiçbir kurala uymayan dosyaları ya da aynı ad ve boyuttaki kopyaları, göz atıp kendiniz silebilmeniz için ayrı bir klasöre koyabilir.

Dosyaları geldikçe sıralayabilir mi?

Her çalıştırdığınızda klasörde olanları sıralar. Premium, onu Task Scheduler, cron ya da launchd ile zamanlanmış olarak, örneğin saatte bir çalıştırmak için bir kılavuz ekler.

Ağ ya da bulut klasörüyle çalışır mı?

Evet, klasör bilgisayarınızla senkronize ediliyor ve normal bir klasör gibi görünüyorsa. Bulut servislerine giriş yapmaz.

Dosyaları benim için siz mi sıralayacaksınız?

Hayır. Betiği bilgisayarınızda siz çalıştırırsınız, böylece dosyalarınız sizde kalır. Tek ihtiyacımız bir ad listesi ya da bir ekran görüntüsü.

Yanıtınızı bulamadınız mı?

Paketler