IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

path et les tuples


Sujet :

Réseau/Web Python

  1. #1
    Nouveau membre du Club Avatar de bj303931
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 75
    Points : 27
    Points
    27
    Par défaut path et les tuples
    Bonjour,
    J'essaye de faire un serveur en python.

    Cette partie de mon code plante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    client = server.accept() 
    	adresse = server.accept()
    	if os.path.exists(adresse)!=True:
    Le message d'erreur est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if os.path.exists(adresse)!=True:
      File "/usr/lib/python3.5/genericpath.py", line 19, in exists
        os.stat(path)
    TypeError: argument should be string, bytes or integer, not tuple
    Que faire?

    ???

    Le code complet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    # /usr/bin/python
    # coding: utf-8
     
    #HEADER PYTHON 2
    #request = urllib.request("127.0.0.1:50000/")
    #opener=urllib.build_opener()
    #firstdatastream = opener.open(request)
    #firstdatastream.headers.dict
     
    #HEADER PYTHON 3
    #a_url='127.0.0.1:50000/'
    #data=urllib.request.urlopen(a_url).read()
    #print(data)
     
    import socket,os ,sys ,time ,signal, select, urllib.request
     
    sigint=0 #tant qu'il est nul le siganl SIGINT n'a pas été reçu!
    host=''
    port = int(sys.argv[1])
     
    def handler(sig, frame):
    	sigint=1
     
    signal.signal(signal.SIGINT, handler)
     
    size=1024
    running=1
     
    f1=os.open("success.log", os.O_CREAT)
    sys.stdout=f1
     
    #f2=os.open("error.log", os.O_CREAT)
    #sys.stderr=f2
     
    #Créer un socket
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     
    #adresse+port
    server.bind((host, port))
     
    #c un socket serveur: attend une demande de connexion, file d'attente.
    backlog=5 #par exemple
    server.listen(backlog)#Taille de la file d'attente
     
    while(sigint==0):
    	client = server.accept() 
    	adresse = server.accept()
    	if os.path.exists(adresse)!=True:
    		f2.write("I can't find your URL! ")
    		sys.exit(1)
    	input = [server, sys.stdin]
    	while(running==1):
    		inputready, outputready, eceptready = select.select(input, [],[])
    		for s in inputready:
    			if s==server:
    				client, adress = server.accept()
    				input.append(client)
     
    #PREPARATION DE LA REQUETE 
     
    #data=urllib.request.urlopen('127.0.0.1:50000/').read()
    #La requete est de la forme: GET / HTTP/1.1 Host: www.google.fr Connection: Close
     
    #envoi
    #server.send(requete)
    				msg=client.recv(size)
    				if (msg[0]=='G' and msg[1]=='E' and msg[2]=='T'):
    					f1.write(msg, "a")
    				else:
    					f2.write("Where is GET? I can't find it! ", "w")
    					sys.exit(1)
    			elif s==sys.stdin:
    				junk=sys.stdin.readline()
    				f2.write(junk, "a")
    				running=0
    			else:
    				data=s.recv(size)
    				if data:
    					s.send(data)
    					print(data)
    				else:
    					s.close()
    					input.remove(s)	
    f1.close()
    f2.close()
    sock.close()
    server.close()

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Dans un cas pareil on fait comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            adresse = server.accept()
            print(adresse)
    Tu constateras que le retour de server.accept() est un tuple et si il contient un path il faudra l'extraire avec son indice.

Discussions similaires

  1. Effacer les tuples de plus de 40 jours?
    Par eleana dans le forum SQLite
    Réponses: 5
    Dernier message: 20/05/2009, 10h12
  2. [SQL] Ma requête renvoie tous les tuples et ne respecte pas la condition AND
    Par JackBeauregard dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/02/2007, 13h33
  3. Récupérer tous les tuples, sauf le premier.
    Par JackBeauregard dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/12/2006, 18h29
  4. [Optimisation] Operation sur tous les tuples
    Par agougeon dans le forum Sybase
    Réponses: 3
    Dernier message: 31/07/2006, 12h50
  5. [MySQL] Supprimer les tuples ...
    Par Seth77 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 12/02/2006, 18h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo