Forum >> Programmazione Python >> Files e Directory >> [Risolto] Ricerca script/directory/files

Pagina: 1

Buonasera a voi, sto cercando questo pomeriggio di risolvere un problema apparentemente semplice (ma che evidentemente non lo è lol), cercando su internet in tutti i modi, in tutti i mari, in tutte le lingue del mondo...
Andiamo con ordine;

Supponiamo io abbia scritto un modulino, che sia in una cartella diversa da quella di lavoro e che io lo voglia richiamare con sys.path.append('PercorsoModulo'); supponiamo che io abbia dimenticato dove caspiterina abbiamo collocato il mio bellissimo file.py, ma che fortunamente mi ricordi come si chiama.
Dunque:

Esiste un modo, (pensavo magari usando sys e os) che mi consenta di ricercare un file, una directory, qualunque cosa mi serva, ma che si trovi fuori dalla cwd, conoscendo solo il nome e che mi restituisca il suo percorso?




Attendo speranzoso.... :D :batti5:




***SPOILER***

sono su Linux e NON VOGLIO UTILIZZARE IL TERMINALE; vorrei imparare a farlo su python.

Grazie in anticipo :P


--- Ultima modifica di Kolmogorov Scale in data 2024-05-09 23:22:55 ---
<< Somewhere, something incredible is waiting to be known >> [Carl Sagan]
Beh, trovare un file ed estrarre la sua directory è semplicissimo, basta os, vedi la sessione idle sotto, nella quale definisco il nome del file da trovare, la directory di avvio della ricerca (la mia home) e stampo la dir ed il nome di quanto trovato:

Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license()" for more information.
import os
target = 'setico.py'
st_dir = os.path.expanduser('~')
result = [os.path.join(dirpath, fname) for dirpath, _, filenames in os.walk(st_dir) 
          for fname in filenames if fname == target]
for f in result:
    print(os.path.dirname(f), os.path.basename(f))

    
/home/nuzzopippo/my_tmp/backup/my_prv/img_to_text setico.py
/home/nuzzopippo/my_tmp/backup/setico2 setico.py
/home/nuzzopippo/Progetti/setico setico.py
/home/nuzzopippo/miei_progr/python/setico setico.py
/home/nuzzopippo/src/old_works/setico setico.py
il problema, se mai, sorge quando vi siano più versioni del file in più luoghi ... con quali criteri scegliere?

Fatti non foste a viver come bruti...
Beh, trovare un file ed estrarre la sua directory è semplicissimo, basta os, vedi la sessione idle sotto, nella quale definisco il nome del file da trovare, la directory di avvio della ricerca (la mia home) e stampo la dir ed il nome di quanto trovato:

Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license()" for more information.
import os
target = 'setico.py'
st_dir = os.path.expanduser('~')
result = [os.path.join(dirpath, fname) for dirpath, _, filenames in os.walk(st_dir) 
          for fname in filenames if fname == target]
for f in result:
    print(os.path.dirname(f), os.path.basename(f))

    
/home/nuzzopippo/my_tmp/backup/my_prv/img_to_text setico.py
/home/nuzzopippo/my_tmp/backup/setico2 setico.py
/home/nuzzopippo/Progetti/setico setico.py
/home/nuzzopippo/miei_progr/python/setico setico.py
/home/nuzzopippo/src/old_works/setico setico.py
il problema, se mai, sorge quando vi siano più versioni del file in più luoghi ... con quali criteri scegliere?


Grazie nuzzo, allora, provo subito e ti dico!

Riguardo ai nomi "simili", solitamente risolvo cercando di differenziare il più possibile...
<< Somewhere, something incredible is waiting to be known >> [Carl Sagan]


Pagina: 1



Esegui il login per scrivere una risposta.