Skip to content

Commit e345bb1

Browse files
committed
Push
- Add "Spota_File.py" - Aggiornato "Readme.md"
1 parent ee5da9d commit e345bb1

3 files changed

Lines changed: 126 additions & 7 deletions

File tree

.github/workflows/python-package.yml

Lines changed: 0 additions & 1 deletion
This file was deleted.

README.md

Lines changed: 60 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Script Python Utili. Gli script sono testati personalmente ed utilizzati giornal
55
**Attenzione !!!**
66
Prima di eseguire gli script assicurati di aver installato Python.
77

8-
[Windows](https://www.python.org/downloads/)
8+
[Download Python For Windows](https://www.python.org/downloads/)
99

1010
---
1111

@@ -18,7 +18,7 @@ _Questo script Python permette di trovare e cancellare cartelle vuote all'intern
1818
- Cerca ricorsivamente tutte le cartelle vuote all'interno della directory specificata.
1919
- Stampa l'elenco delle cartelle vuote trovate.
2020
- Chiede all'utente se desidera procedere con la cancellazione delle cartelle vuote trovate.
21-
Cancella le cartelle vuote se l'utente conferma.
21+
- Cancella le cartelle vuote se l'utente conferma.
2222

2323
### Utilizzo
2424

@@ -34,7 +34,7 @@ python Efolder.py
3434
- Inserisci il percorso della cartella che desideri esaminare quando richiesto.
3535
- Lo script mostrerà un elenco delle cartelle vuote trovate e chiederà se desideri cancellarle.
3636

37-
```
37+
```sh
3838
$ python EFolder.py
3939
Inserisci il percorso della cartella: /path/to/your/folder
4040
Cartelle vuote trovate:
@@ -55,8 +55,8 @@ Cancellato: /path/to/your/folder/empty_folder2
5555

5656
### Note
5757

58-
Assicurati di avere i permessi necessari per cancellare le cartelle all'interno della directory specificata.
59-
Usa questo script con cautela per evitare di cancellare cartelle per errore.
58+
- **Assicurati di avere i permessi necessari per cancellare le cartelle all'interno della directory specificata.**
59+
- **Usa questo script con cautela per evitare di cancellare cartelle per errore.**
6060

6161
---
6262

@@ -118,7 +118,6 @@ _Questo script Python permette di eliminare tutti i file non musicali e le carte
118118

119119
```sh
120120
python Remove.py
121-
122121
```
123122

124123
- Inserisci il percorso della cartella che desideri pulire quando richiesto.
@@ -141,4 +140,59 @@ Pulizia completata.
141140
- delete_non_music_files(folder_path): Questa funzione elimina tutti i file non musicali e le cartelle vuote all'interno della directory specificata.
142141
- main(): La funzione principale che gestisce l'input dell'utente e coordina l'esecuzione della funzione di pulizia.
143142

143+
### Note
144+
145+
- **Assicurati di avere i permessi necessari per cancellare le cartelle all'interno della directory specificata.**
146+
- **Usa questo script con cautela per evitare di cancellare cartelle/File per errore.**
147+
144148
---
149+
150+
## Sposta_File.py
151+
152+
_Questo script Python permette di spostare tutti i file presenti nelle sottocartelle di una directory specificata dall'utente alla directory principale stessa. Una volta spostati i file, lo script elimina le sottocartelle vuote._
153+
154+
### Funzionalità
155+
156+
- Sposta tutti i file dalle sottocartelle alla directory principale.
157+
- Elimina le sottocartelle vuote dopo aver spostato i file.
158+
- Ignora i file che già esistono nella directory principale.
159+
160+
### Utilizzo
161+
162+
- Clona questo repository o scarica lo script Sposta_File.py.
163+
- Esegui lo script utilizzando Python:
164+
165+
```sh
166+
python Sposta_File.py
167+
Inserisci il percorso della directory principale che desideri pulire quando richiesto.
168+
```
169+
170+
- Lo script sposterà tutti i file dalle sottocartelle alla directory principale e rimuoverà le sottocartelle vuote.
171+
172+
### Esempio di Esecuzione
173+
174+
```sh
175+
$ python Sposta_File.py
176+
Inserisci il percorso della directory principale: /path/to/your/main_directory
177+
Directory principale: /path/to/your/main_directory
178+
Trovati 10 file da spostare.
179+
Spostando '/path/to/your/main_directory/subfolder1/file1.txt' a '/path/to/your/main_directory/file1.txt'
180+
Spostando '/path/to/your/main_directory/subfolder2/file2.txt' a '/path/to/your/main_directory/file2.txt'
181+
...
182+
10 file sono stati spostati alla directory principale.
183+
Rimuovendo directory vuota '/path/to/your/main_directory/subfolder1'
184+
Rimuovendo directory vuota '/path/to/your/main_directory/subfolder2'
185+
...
186+
5 sottocartelle vuote sono state rimosse.
187+
Operazione completata.
188+
```
189+
190+
### Struttura del Codice
191+
192+
- move_files_to_main_directory(main_directory): Questa funzione sposta tutti i file dalle sottocartelle alla directory principale e rimuove le sottocartelle vuote.
193+
- Il percorso della directory principale viene richiesto all'utente e passato alla funzione move_files_to_main_directory.
194+
195+
### Note
196+
197+
- **Assicurati di avere i permessi necessari per cancellare le cartelle all'interno della directory specificata.**
198+
- **Usa questo script con cautela per evitare di cancellare cartelle/File per errore.**

Sposta_File.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import os
2+
import shutil
3+
4+
def move_files_to_main_directory(main_directory):
5+
# Verifica se la directory principale esiste
6+
if not os.path.isdir(main_directory):
7+
print(f"Errore: La directory '{main_directory}' non esiste.")
8+
return
9+
10+
print(f"Directory principale: {main_directory}")
11+
12+
# Conta il numero di file da spostare
13+
total_files = 0
14+
for root, dirs, files in os.walk(main_directory):
15+
if root == main_directory:
16+
continue
17+
total_files += len(files)
18+
19+
if total_files == 0:
20+
print("Nessun file trovato nelle sottocartelle.")
21+
return
22+
else:
23+
print(f"Trovati {total_files} file da spostare.")
24+
25+
files_moved = 0
26+
27+
# Cammina attraverso tutte le sottocartelle
28+
for root, dirs, files in os.walk(main_directory):
29+
# Salta la directory principale
30+
if root == main_directory:
31+
continue
32+
33+
for file in files:
34+
file_path = os.path.join(root, file)
35+
new_location = os.path.join(main_directory, file)
36+
37+
# Controlla se esiste già un file con lo stesso nome nella directory principale
38+
if os.path.exists(new_location):
39+
print(f"Attenzione: Il file '{file}' esiste già nella directory principale. Saltando.")
40+
continue
41+
42+
# Sposta il file alla directory principale
43+
print(f"Spostando '{file_path}' a '{new_location}'")
44+
shutil.move(file_path, new_location)
45+
files_moved += 1
46+
47+
print(f"{files_moved} file sono stati spostati alla directory principale.")
48+
49+
# Rimuove le sottocartelle vuote
50+
empty_dirs_removed = 0
51+
for root, dirs, files in os.walk(main_directory, topdown=False):
52+
for dir in dirs:
53+
dir_path = os.path.join(root, dir)
54+
if not os.listdir(dir_path): # Controlla se la directory è vuota
55+
print(f"Rimuovendo directory vuota '{dir_path}'")
56+
os.rmdir(dir_path)
57+
empty_dirs_removed += 1
58+
59+
print(f"{empty_dirs_removed} sottocartelle vuote sono state rimosse.")
60+
print("Operazione completata.")
61+
62+
# Chiede all'utente di inserire il percorso della directory principale
63+
main_directory = input("Inserisci il percorso della directory principale: ").strip()
64+
65+
# Esegui la funzione
66+
move_files_to_main_directory(main_directory)

0 commit comments

Comments
 (0)