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
3 Réponses :
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))
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/
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',
Mettez une boucle for dans une boucle for.