Lancer un script sur un dossier

Philippe1234 -  
 Philippe1234 -
Bonjour,

J'ai crée un script en Python qui fonctionne actuellement sur Windows. Le principe est simple, il demande à l'utilisateur de sélectionner un dossier, puis un ou plusieurs fichiers et lance le script qui permet de modifier le fichier sélectionné en remplaçant des caractères.

Imaginons que mon fichier python s'appelle "convertisseur.py", j'ai essayé
./convertisseur.py  mon_dossier


mais sans succès.

Avez vous une idée ?

Merci d'avance.
Configuration: Windows / Chrome 80.0.3987.132

3 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Allô Docteur ? J'ai mal là, c'est grave Docteur ?

    On n'est pas devin ;-\
    Sans voir le contenu de ton script, difficile de te répondre…

    0
  2. Philippe1234
     
    Bonjour et merci pour ta réponse.

    Alors j'ai trouvé pour exécuter un code, il suffit de faire "Python nom_du_fichier.py". Cela fonctionne.
    Mon code n'a pas tellement d'importance puisqu'il permet juste d'exécuter une copie d'un fichier a.txt par exemple vers un fichier b.txt en y appliquant des modifications.

    Ma question relève plus d'une commande Linux :)

    J'ai essayé
    python nom_du_fichier.py mondossier/
    mais ceci ne fonctionne pas sur le "mondossier", mais sur le dossier actuel
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Ma question relève plus d'une commande Linux
      Pas du tout ! Ça relève de la syntaxe dans ton code !
      Donc, si tu ne veux pas afficher ton code, il ne reste que tes yeux pour pleurer.


      D'ailleurs, je redirige ton post vers le forum adéquat :
      Programmation => Python
      0
  3. Philippe1234
     
    Merci pour ton commentaire, voici une partie de mon code que j'appliquais sous Windows, celle-ci demandant à l'utilisateur de sélectionner un dossier puis un fichier et de modifier les éléments présents dans ce dossier vers le même nom de fichier mais avec une extension différentes.
    Je n'arrive pas à faire cette même manip en linux malheureusement..
    from tkinter import Tk
    from tkinter import filedialog
    import os
    #######################
    #C'est pour cette première partie qu'une manipulation doit être possible pour Linux j'imagine
    root = Tk()
    root.withdraw()
    
    current_directory = filedialog.askdirectory()
    select_file = filedialog.askopenfilenames()
    
    file_path = os.path.join(current_directory,str(select_file))
    print(file_path)
    #######################
    import re
    
    
    
    dict = {'C':{'test1':'test2'},}
    
    def find_END(line):
        if re.search(r'\bFIN\b', line):
            return True
        else:
            return False
    
    def replacer_factory1(dictionary):
        def replacing(match):
            if len(dictionary) > 0:
                word = match.group()
                exchange = dictionary.get(word, word)
                return exchange
            else:
                return ""
        return replacing
    
    def replacing1(text, dict):
        regex_patt_list = r'\b(?:' + '|'.join(dict) + r')\b'
        replacer = replacer_factory1(dict)
        return re.sub(regex_patt_list, replacer, text)
    
    with open(file_path) as fin:
        with open(file_path + 'new', 'w') as fout:
            key = 0
            flag = 0
            sous_dict = dict["C"]
            cache_mem = []
            for line in fin:
                cache_mem.append(line)
                if find_END(line):
                    #print(cache_mem)
                    for x in cache_mem:
                        if x.strip() in dict.keys():
                            key = x.strip()
                            sous_dict = dict[key]
                        fout.write(replacing1(x,sous_dict))
                    cache_mem = []
    
    
    0