DevelopmentPayment protectionDetails
- Revisions within the package are free.
- If you do not respond within 3 days of delivery, the work is accepted automatically.
The money is reserved when you pay and released only once you accept the work.

Example result
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.
The client and all details are made up.
About this service
Renaming files one by one takes an afternoon when there are hundreds of them: photos from a shoot, scanned documents, product pictures, invoices in a folder. This Python script renames them by the rules you set: it adds a date taken from the file, a prefix or a running number, replaces or removes words, changes the case, or takes new names from a CSV list of old and new names. Before it renames anything it shows what each file will be called, and it never overwrites a file that already has that name. Send us the rules and a few current names with the names you want. You run the script yourself on your computer, so try it on a copy of the folder first. It changes names only: it does not edit what is inside the files.
What is included
- What you getA ZIP archive with the Python script, a README with step-by-step instructions and, from Standard, a settings file with your rules; the code is also shown on the order page.
- Preview firstA list of old and new names before any file is renamed
- Your naming rulesDates, numbers, prefixes, replaced words or a CSV list
- No overwritingIf a name is taken, the file gets a number instead of replacing another
- Any kind of filePhotos, PDFs, documents and other files on Windows, macOS or Linux
- Readable codeWith comments, so a rule is easy to change later
How it works
- 1RulesYou describe the rules and send a few current and wanted names
- 2CodeWe write the script and the guide to running it
- 3Try itYou run it on a copy of the folder and look through the preview
- 4ChangesYou ask for changes within your package and send any error message
What we need from you
Which folder you want to rename and what is in it (photos, PDFs, documents), roughly how many files, and the rules: what goes into the new name and in what order. A list of 5-10 current names next to the names you want shows it best. If the names come from a list, a few rows of that CSV or Excel file. Whether there are subfolders, and your system: Windows, macOS or Linux.
We will ask you:
- Which files do you want to rename?
- What should the new names look like?
- Where will it run?
- Anything it must never do
Compare packages
| Packages | BasicOne renaming rule$16 | StandardRules in a settings file$33 | PremiumRenaming tool$67 |
|---|---|---|---|
| Deadline | 1 day | 2 days | 3 days |
| Revisions | 1 | 2 | 3 |
| Code | up to 150 lines | up to 400 lines | up to 1,000 lines |
| Files of code | 1 | up to 3 | up to 8 |
| Settings file | No | Yes | Yes |
| Clear error messages and a log | No | Yes | Yes |
| Run options and a guide to running it on a schedule | No | No | Yes |
| Guide to installing and running it (README) | Yes | Yes | Yes |
| Language | Python | Python | Python |
| Order Basic | Order Standard | Order Premium |
Payment protection
You pay when you order, but the money is released only for accepted work.
- Fixed priceThe package price does not change after you pay.
- The money is reservedWhen you pay, the amount is only reserved. It is released to the service once you accept the work.
- Checked before deliveryEvery result goes through a quality check before it reaches you, and you see it on the order page before accepting it.
- Free revisionsAsk for changes within your brief as many times as the package allows.
- Acceptance after 3 daysIf within 3 days of delivery you neither accept the work nor ask for changes, it is accepted automatically. If you write in the order chat after delivery, the order waits; once we answer, we may start the 3 days again and will say so in the chat.
- Redo or a full refundIf the result does not match your brief and the revisions did not fix it, or the work takes more than twice its deadline, write in the order chat: we will redo the work or refund the payment in full.
Questions and answers
Can I undo the renaming?
From Standard the script saves a list of old and new names in its log, and the README shows how to put the old names back. In Basic, try it on a copy of the folder and keep the original.
Can it use the date a photo was taken?
Yes, if the photo keeps that date in its details (EXIF). If it does not, the script uses the date the file was last changed. Tell us which date you need.
Will it change the files themselves?
No. It changes only names, and only in the folder you set. It does not delete files, edit them or move them to other places.
Will you rename the files for me?
No. You run the script on your computer, so your files never leave it. Send us only a list of names, not the files themselves.
Did not find your answer?


