Est-il possible d'intégrer un script dans une boucle ?

Fermé
tathanos Messages postés 7 Date d'inscription dimanche 13 décembre 2020 Statut Membre Dernière intervention 8 septembre 2024 - Modifié le 30 nov. 2021 à 20:33
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 30 nov. 2021 à 20:58
Bonjour,

J'ai un mini-projet d'automatisation Adobe Premiere Pro et après un petit moment (j'ai commencé Python il y a 2 Sem) j'ai enfin "fini" mon script principal :

choice = input("Quelle Plateforme ? 1: TikTok  2: Youtube : ")
if choice == "1" :
  open("C:\PREMIERE FORMAT\Format\Tik Tok.txt", "r")
elif choice == "2" :
  open("C:\PREMIERE FORMAT\Format\Youtube.txt", "r")
else :
  print("C'est chaud de se tromper alors que y'a que 2 options...")

(Je programme avec EduPython)
  • Problème n°1: lors du test les fichiers ne s'ouvrent pas (je ne sais pas si ça a un lien avec EduPython mais on sait jamais).
  • Problème n°2 : je ne sais pas comment et surtout si c'est possible d'intégrer mon script dans une boucle à fin de pouvoir utiliser l'instruction
    break
    .
  • Question parallèle: est-il possible de revenir au début du script ou de faire en sorte qu'il se ferme sans utiliser de boucle ?


Merci d'avance aux personnes qui voudront bien m'aider
A voir également:

4 réponses

jordane45 Messages postés 38316 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 novembre 2024 4 705
25 nov. 2021 à 22:46
Bonjour,

Quand tu dis que les fichiers ne s'ouvrent pas... c'est à dire ? ils ne s'affichent pas à l'écran ? .. c'est normal...
La fonction "open" sert à les "ouvrir" virtuellement dans le programme... pour ensuite les manipuler.... si c'est pour les "ouvrir" (comme tu le ferais en double cliquant dessus) il faut passer par
osCommandString = "notepad.exe file.txt"
os.system(osCommandString)

ou
import subprocess as sp
programName = "notepad.exe"
fileName = "file.txt"
sp.Popen([programName, fileName])


Ensuite.. pourquoi vouloir mettre une boucle juste pour utiliser l'instruction break ? je ne comprend pas trop l'intéret...

Enfin bon, pour faire un menu en "console", tu peux faire
https://computinglearner.com/how-to-create-a-menu-for-a-python-console-application/




0
tathanos Messages postés 7 Date d'inscription dimanche 13 décembre 2020 Statut Membre Dernière intervention 8 septembre 2024
25 nov. 2021 à 23:17
Ah et je me doute bien que c'est de ma faute mais les fonctions que tu as mises marchent pas :/
0
jordane45 Messages postés 38316 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 novembre 2024 4 705 > tathanos Messages postés 7 Date d'inscription dimanche 13 décembre 2020 Statut Membre Dernière intervention 8 septembre 2024
26 nov. 2021 à 00:06
Il faudrait que tu nous montres comment tu as essayé de les utiliser pour qu'on se rende compte de ce que tu as éventuellement mal fait
0
tathanos Messages postés 7 Date d'inscription dimanche 13 décembre 2020 Statut Membre Dernière intervention 8 septembre 2024 > jordane45 Messages postés 38316 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 novembre 2024
26 nov. 2021 à 00:28
choice = input("Quelle Plateforme ? 1: TikTok  2: Youtube : ")
if choice=="1" :
  osCommandString = "C:\PREMIERE FORMAT\Format\Tik Tok.txt"
  os.system(osCommandString)
elif choice=="2" :
  open("C:\PREMIERE FORMAT\Format\Youtube.txt", "r")
else :
  print("C'est chaud de se tromper alors que n'y n'a que 2 options...")

À un moment donné j'ai tenté de commencer avec un
import os
mais ça n'a pas marché non plus
0
jordane45 Messages postés 38316 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 novembre 2024 4 705 > tathanos Messages postés 7 Date d'inscription dimanche 13 décembre 2020 Statut Membre Dernière intervention 8 septembre 2024
26 nov. 2021 à 06:56
Tu as bien regardé mon exemple... Il n'y a pas que le nom du fichier.....
0
tathanos Messages postés 7 Date d'inscription dimanche 13 décembre 2020 Statut Membre Dernière intervention 8 septembre 2024
25 nov. 2021 à 23:15
Alors je sais pas du tout si c'est bon ce que j'ai fait mais en TRES gros,
c'est ça que je veux faire :
0
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 7 806
Modifié le 30 nov. 2021 à 20:59
Bonjour,

Juste quelques points pour te guider sur l'ouverture, la lecture et la fermeture d'un fichier. Les notions qui suivent sont communes à tous les langages de programmation.
  • Tout fichier doit être ouvert pour être lu. Le fait de l'ouvrir permet d'obtenir un descripteur de fichier.
  • Tant que le fichier est ouvert, son descripteur de fichier peut être utilisé pour lire le contenu du fichier.
  • Lorsque tu n'as plus besoin de lire dans le fichier, il faut le fermer (ne pas le faire peut ouvrir un trou de sécurité) avec la méthode
    close()
    Cela invalide le descripteur de fichier.


En python :
  • L'ouverture se fait avec la fonction
    open()
    .
  • Si l'ouverture échoue, cela lèvre une exception que l'on peut rattraper avec un bloc
    try ... except ...
    comme nous allons le voir plus loin.
  • Si l'ouverture réussit, on peut exploiter le descripteur de fichiers de plusieurs manières, par exemple avec la méthode
    readlines()
  • Pour fermer le descripteur de fichier on utilise la méthode
    close()
    .


Version simple

f = open(filename)
for line in f.readlines():
    print(line)
f.close()


Avec un context manager

La notion de context manager est une notion spécifique à python qui sert à éviter d'oublier de fermer quelque chose qui doit l'être (ce qui inclue, un fichier régulier, un socket réseau, etc.). Le bout de code précédent devient :

with open(filename) as f:
    for line in f.readlines():
        print(line)


Quelque soit la manière dont on "quitte" le
with
, le context manager sous-jacent garanti que ce qui doit être fermé l'est effectivement.

Version propre

Il reste un cas de figure qu'on n'a pas considéré. Que se passe-t'il si le fichier n'existe pas ? Ou si le système nous empêche de le lire, car les droits associés à ce fichier nous l'interdise ?

Comme dit plus haut python va lever une exception (dont la nature dépend de l'erreur). En python, une exception se rattrape avec un bloc
try ... except
. Les exceptions sont documentées dans la fonction concernée.

import sys

def print_file(filename):
    try:
        with open(filename) as f:
            for line in f.readlines():
                print(line)
    except OSError:
        print(f"{filename} ne peut pas être ouvert", file=sys.stderr)


Bonne chance
0
Salut,

Il faut revoir le chapitre de tes cours ou de ton tuto sur la manipulation des fichiers.
Oui, tu ouvres tes fichiers, mais tu ne les lis pas, c'est ce point qu'il faut revoir, et un fichier cela se ferme une fois les opérations effectuées dessus.

Oui, tu peux utiliser une boucle, en y ajoutant un 3 pour quitter le programme, et ainsi utiliser le break si le choix utilisateur saisi est le 3.
-1
tathanos Messages postés 7 Date d'inscription dimanche 13 décembre 2020 Statut Membre Dernière intervention 8 septembre 2024
Modifié le 30 nov. 2021 à 20:35
Alors, je n'ai pas de tutoriel, j'ai essayé par moi-même de faire quelque chose et au niveau des cours on en est toujours aux additions.

Je te laisse voir le dernier truc que l'on devait faire en cours :

H = int(input("Combien d'heure ?"))
M = int(input("Combien de minute ?"))
if H < 6 :
    N = 24 - (6 - H)
else :
    N = H - 6
print("A New York il est", N, ":", M)
0
douba > tathanos Messages postés 7 Date d'inscription dimanche 13 décembre 2020 Statut Membre Dernière intervention 8 septembre 2024
Modifié le 26 nov. 2021 à 22:14
Salut,

Oui tu es au début de l'apprentissage en effet.

Je ne saurais te conseiller un tuto en particulier, mais le site même de python permet de s'instruire pas mal:
https://docs.python.org/fr/3/tutorial/

Vers le chapitre 3.2 pour le rapide survol de la boucle while et 4.4 pour les instructions break, continue des boucles, et chapitre 7.2 pour la compréhension de la manipulation des fichiers.

Mais je ne sais pas si c'est assez bien expliqué et détaillé pour un débutant.

Toujours est-il qu'en recherchant sur internet, tu devrais trouver des tas de tutos expliquant plus en détail certains points, le pdf de Gérard Swinnen est bien, mais je crois qu'il n'est plus à jour avec les dernières évolutions de python3.
0
tathanos Messages postés 7 Date d'inscription dimanche 13 décembre 2020 Statut Membre Dernière intervention 8 septembre 2024 > douba
26 nov. 2021 à 23:16
Merci, j'irais y jeter un coup d'œil
0