Skip to content

Commit 65eaabf

Browse files
Merge pull request #3151 from xinitd/Rename-Multiple-Files
Added script for rename multiple files in folders
2 parents e7b2366 + 52f1b5c commit 65eaabf

File tree

2 files changed

+141
-0
lines changed

2 files changed

+141
-0
lines changed

Diff for: Rename-Multiple-Files/README.md

+113
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
### [English](#EN)
2+
3+
### [Russian](#RU)
4+
5+
# EN
6+
7+
### Script for rename multiple files
8+
9+
Tested in Python version 3.11.2, but it must working in version 3.5 and above.
10+
11+
### Run
12+
13+
GNU\Linux: `$(which python3) main.py`
14+
15+
Windows: `C:\\Path\\to\\Python3\\Python3.exe main.py`
16+
17+
Folders structure:
18+
19+
```
20+
main.py
21+
root/
22+
|
23+
|--- folder1
24+
| |
25+
| |- file1.txt
26+
| |- file2.txt
27+
| |- file2.txt
28+
|
29+
|--- folder2
30+
| |
31+
| |- file1.txt
32+
| |- file2.txt
33+
| |- file2.txt
34+
|
35+
|--- folder3
36+
| |
37+
| |- file1.txt
38+
| |- file2.txt
39+
| |- file2.txt
40+
```
41+
42+
Output files structure:
43+
44+
```
45+
folder1/folder1-1.txt
46+
folder1/folder1-2.txt
47+
folder1/folder1-3.txt
48+
49+
folder2/folder2-1.txt
50+
folder2/folder2-2.txt
51+
folder2/folder2-3.txt
52+
53+
folder3/folder3-1.txt
54+
folder3/folder3-2.txt
55+
folder3/folder3-3.txt
56+
```
57+
58+
Maybe set outher symbol for `DESTINATION_FILE_DELIMITER` param or just leave blank `DESTINATION_FILE_DELIMITER = ''`
59+
60+
# RU
61+
62+
### Скрипт для переименования большого количества файлов
63+
64+
Тестировался на Python версии 3.11.2, но должен работать на версиях выше 3.5.
65+
66+
### Запуск
67+
68+
GNU\Linux: `$(which python3) main.py`
69+
70+
Windows: `C:\\Path\\to\\Python3\\Python3.exe main.py`
71+
72+
Структура папок:
73+
74+
```
75+
main.py
76+
root/
77+
|
78+
|--- папка1
79+
| |
80+
| |- файл1.txt
81+
| |- файл2.txt
82+
| |- файл2.txt
83+
|
84+
|--- папка2
85+
| |
86+
| |- файл1.txt
87+
| |- файл2.txt
88+
| |- файл2.txt
89+
|
90+
|--- папка3
91+
| |
92+
| |- файл1.txt
93+
| |- файл2.txt
94+
| |- файл2.txt
95+
```
96+
97+
Скрипт переименует файлы в папках так:
98+
99+
```
100+
папка1/папка1-1.txt
101+
папка1/папка1-2.txt
102+
папка1/папка1-3.txt
103+
104+
папка2/папка2-1.txt
105+
папка2/папка2-2.txt
106+
папка2/папка2-3.txt
107+
108+
папка3/папка3-1.txt
109+
папка3/папка3-2.txt
110+
папка3/папка3-3.txt
111+
```
112+
113+
В случае необходимости можно поменять `DESTINATION_FILE_DELIMITER` на нужный символ или вообще оставить пустым `DESTINATION_FILE_DELIMITER = ''`

Diff for: Rename-Multiple-Files/main.py

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import os
2+
import platform
3+
4+
5+
ROOT_DIR = os.getcwd() + '/root'
6+
PATH_DELIMITER = ''
7+
DESTINATION_FILE_DELIMITER = '-'
8+
COUNTER = 0
9+
10+
11+
if (platform.system() == 'Linux') or (platform.system() == 'Darwin'):
12+
PATH_DELIMITER = '/'
13+
elif (platform.system() == 'Windows'):
14+
PATH_DELIMITER = '\\'
15+
16+
for current_dir in os.listdir(ROOT_DIR):
17+
subdir = ROOT_DIR + PATH_DELIMITER + current_dir
18+
if os.path.isdir(subdir):
19+
print('Now working with: "' + subdir + '" directory')
20+
COUNTER = 0
21+
for current_file in os.listdir(subdir):
22+
COUNTER += 1
23+
current_file_full_path = subdir + PATH_DELIMITER + current_file
24+
renamed_file_full_path = subdir + PATH_DELIMITER + current_dir + DESTINATION_FILE_DELIMITER + str(COUNTER) + '.' + current_file.split('.')[-1]
25+
try:
26+
os.rename(current_file_full_path, renamed_file_full_path)
27+
except Exception as e:
28+
print('Error occurred because: ' + e)

0 commit comments

Comments
 (0)