0
votes

Comment faire une boucle sur des chemins en python?

Je suis très nouveau en python et en programmation.

Je veux faire une boucle sur ces chemins:

/group/e000055/evtgen/00/all/00/  
/group/e000055/evtgen/00/all/01/    
/group/e000055/evtgen/00/all/02/

/group/e000055/evtgen/01/all/00/   
/group/e000055/evtgen/01/all/01/      
/group/e000055/evtgen/01/all/02/     

/group/e000055/evtgen/02/all/00/   
/group/e000055/evtgen/02/all/01/      
/group/e000055/evtgen/02/all/02/ 

Après evtgen, j'ai un flux à partir de 00 et le sous-flux continue à 10 à partir de 00.
Ensuite, un autre flux commence à 01 et à nouveau le sous-flux commence de 00 à 10.

Je veux faire une boucle sur tous ces chemins pour soumettre des travaux en python.

Pourriez-vous s'il vous plaît me fournir un squelette de code pour cela.

Merci d'avance.

Cordialement


1 commentaires

Mettez une boucle for dans une boucle for.


3 Réponses :


1
votes

Utilisez quelque chose comme ceci:

/group/e000055/evtgen/00/all/00/
/group/e000055/evtgen/00/all/01/
/group/e000055/evtgen/00/all/02/
...
...
/group/e000055/evtgen/09/all/08/
/group/e000055/evtgen/09/all/09/

Sortie :

for i in range(10):
    for j in range(10):
        print('/group/e000055/evtgen/0%s/all/0%s/' % (i,j))


0 commentaires

0
votes
path = '/group/e000055/evtgen/0'

for i in range(3):
    path1 = path + str(i) + '/all/0'
    for j in range(1, 4):
        print(path1 + str(j) + '/')

output:

/group/e000055/evtgen/00/all/01/
/group/e000055/evtgen/00/all/02/
/group/e000055/evtgen/00/all/03/
/group/e000055/evtgen/01/all/01/
/group/e000055/evtgen/01/all/02/
/group/e000055/evtgen/01/all/03/
/group/e000055/evtgen/02/all/01/
/group/e000055/evtgen/02/all/02/
/group/e000055/evtgen/02/all/03/


0 commentaires

1
votes

Créez-vous ces noms ou ces chemins existent-ils déjà et vous souhaitez en obtenir une liste? Dans ce dernier cas, la fonction glob est ce que vous voulez.

>>> import glob
>>> print(glob.glob("/usr/lib/*/*.so"))
['/usr/lib/systemd/libsystemd-shared-245.so', '/usr/lib/tc/q_atm.so', '/usr/lib/tc/m_ipt.so', '/usr/lib/tc/m_xt.so', '/usr/lib/man-db/libmandb.so', '/usr/lib/man-db/libman.so', '/usr/lib/man-db/libman-2.9.1.so', '/usr/lib/man-db/libmandb-2.9.1.so',


0 commentaires