Partage
  • Partager sur Facebook
  • Partager sur Twitter

compléments sur les fichiers

Sujet résolu
    6 septembre 2010 à 18:31:04

    Bonjour tout le monde!
    Je travaille actuellement sur un code de python (v 2.7) et j'aurais besoin de pouvoir créer des fichiers avec un nom dynamique. C'est à dire une variable dans laquelle est stockée une chaine de caractères, et le programme les crée 1 par 1 en y mettant ce que je veux dedans . En fait c'est simplement que j'ai une grosse liste de nombres dans un fichier et j'aimerais la répartir en qqch comme 10 nombres par fichier. C'est possible?

    Après, j'aimerais que python ouvre les fichiers tous en même temps comme le fait le finder, pour éviter d'avoir à tous les exécuter manuellement (c'est des .bat). Ya une fonction qui permet de faire ça, ou une méthode quelconque?

    Merci d'avance :D
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      6 septembre 2010 à 20:19:24

      yoerlebourrin, tu portes bien ton nom :D

      Citation

      C'est possible?



      Hmmm... Oui!

      Citation

      Après, j'aimerais que python ouvre les fichiers tous en même temps comme le fait le finder, pour éviter d'avoir à tous les exécuter manuellement (c'est des .bat).



      Ben là j'ai un soucis de compréhension. Comment un fichier plein de nombres pourraient s'exécuter via un bat?

      Citation

      Ya une fonction qui permet de faire ça, ou une méthode quelconque?



      Ba oui, mais comme le reste me semble pas cohérent... o_O

      Je te le dis quand même allez... subprocess

      Je ne vois pas l'intérêt de les exécuter en même temps, avec subprocess, tu les exécuteras les uns derrière les autres.

      • Partager sur Facebook
      • Partager sur Twitter
        6 septembre 2010 à 20:46:18

        Merci beaucoup pour ta réponse! Je vais lire plus sur cette fonction "subprocess". Pour le reste, peut-être que des explications plus détaillées sont nécessaires. Le programme est en fait destiné à mapper un réseau:
        # -*- coding: utf-8 -*-
        
        import os
        import time
        
        #Test de soft de ping automatique ms-dos --> Mapping réseau
        
        start = time.clock()
        
        mon_fichier = open("mapping.bat", "w")
        mon_fichier.write("@ echo off \n\n")
        mon_fichier.close()
        
        inition = 1
        
        while inition<256:
        	
        	print(inition)
        	string = str(inition)
        
        	mon_fichier = open("mapping.bat", "a")
        	mon_fichier.write("ping xxx.xxx.xxx."+string+"\n")
        	mon_fichier.close()
        	
        	inition += 1
        	
        
        mon_fichier = open("mapping.bat", "a")
        mon_fichier.write("\nPause")
        mon_fichier.close()
        
        end = time.clock() - start
        print(end)
        
        
        
        os.system("pause")
        


        Dans ce que tu peux voir, le logiciel crée un document .bat, qui contient d'abord la ligne @echo off (désactive l'affichage des batchs), puis des ping xxx.xxx.xxx.1, ping xxx.xxx.xxx.2 etc... Pour chaque ping, une cmd essaie de causer avec l'adresse ip qui suit. En gros, ça te dit quelle adresse est attribuée sur le réseau... ;)

        Problème! Le ping d'une adresse ip prend environ 5 sec, alors fait le calcul: pour 256 adresses ip, ça nous fait, 1280 sec, soit 21 minutes. Pas très cool. Mais si tu scindes les .bat pour que chacun ne contienne que 10 adresses ip, tu ne mets que très peu de temps! envoyer style 5 octets ça va pas saturer la bande passante, même si on le fait 25 fois en même temps...

        C'est pour ça qu'il me faut absolument un truc pour créer des fichiers au noms automatiquement attribué, sinon je galère à nommer, ré-exécuter etc. Ensuite j'ai cas, à la limite, me déchainer sur le clic de ma souris pour tout exécuter mais les ouvrir tous d'un coup ça serait cool ^^.

        J'espère que c'est plus clair maintenant ;) . Merci encore et bonne soirée!

        Edit: Le timer c'est juste pour savoir combien de temps mon programme mets à calculer, ça me fait marrer de comparer les versions, de changer pour voir... :p
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          6 septembre 2010 à 21:15:20

          Eh bien!!!

          Dis donc...

          Plusieurs remarques

          Déjà pour faire un ping, pas besoin de créer un fichier bat, tu peux executer ta commande via subprocess dans un script python.

          Mais je ne trouve pas cela très propre, je suis sûr qu'il y a un module du genre pouvant pinger.

          Je ne vois pas l'intérêt de créer des fichiers, sérieusement

          Edit : Scapy doit le faire je pense

          http://wiki.spiritofhack.net/index.php/Scapy-usage

          http://www.secdev.org/projects/scapy/

          • Partager sur Facebook
          • Partager sur Twitter
            7 septembre 2010 à 16:51:26

            Ok, je regarde tout ça. Merci beaucoup de prendre du temps pour répondre aux noobs! Apparemment subprocess peut faire une foule de chose, il faut vraiment que je m'y intéresse de plus près ;). Et le truc de créer des fichiers, effectivement je me doutais qu'on pouvait faire mieux, mais je connaissais ça et c'était surtout pour voir si on pouvait créer des exécutables juste en traitant du texte avec python. Ce qui est quand-même assez puissant je trouve...

            En tout cas merci Encore et à+ sur le forum!

            Yoer
            • Partager sur Facebook
            • Partager sur Twitter

            compléments sur les fichiers

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown