<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.velannes.com/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.velannes.com/feed.php">
        <title>Dokuwiki - python:programmes</title>
        <description></description>
        <link>https://wiki.velannes.com/</link>
        <image rdf:resource="https://wiki.velannes.com/_media/wiki:dokuwiki.svg" />
       <dc:date>2026-05-02T12:25:39+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:affichage?rev=1562958757&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:asynchrone_functions?rev=1496270041&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:browser_emulation?rev=1365614017&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:classes_heritage_exemple?rev=1496314935&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:convert_dict_object?rev=1438423139&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:deactivate_traceback?rev=1386106943&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:dump_object?rev=1392491763&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:exec_cmd2?rev=1363126656&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:file_read?rev=1370129492&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:find?rev=1564421257&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:grouper_chaines_listes?rev=1364066801&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:indentation?rev=1363129561&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:listes_operations?rev=1364069416&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:multiple_loop_in_one?rev=1393089443&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:multiprocessing1?rev=1363129667&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:replace?rev=1363126753&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:show_permissions?rev=1391943437&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:sort_array?rev=1393025666&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:swap?rev=1363456212&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:timeout?rev=1370378086&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:twisted_ssh_server?rev=1392936532&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.velannes.com/python:programmes:twisted_ssl_server?rev=1392937519&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.velannes.com/_media/wiki:dokuwiki.svg">
        <title>Dokuwiki</title>
        <link>https://wiki.velannes.com/</link>
        <url>https://wiki.velannes.com/_media/wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://wiki.velannes.com/python:programmes:affichage?rev=1562958757&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-12T19:12:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>affichage</title>
        <link>https://wiki.velannes.com/python:programmes:affichage?rev=1562958757&amp;do=diff</link>
        <description>Gérer l&#039;affichage avec Python

format (python 3)

	*  Le premier nombre correspond à la première variable dans format
	*  Les : permettent de séparer la variable de ses fonctions d&#039;affichage
	*  Le signe &lt; permet d&#039;aligner à gauche
	*  Le signe</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:asynchrone_functions?rev=1496270041&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-05-31T22:34:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>asynchrone_functions</title>
        <link>https://wiki.velannes.com/python:programmes:asynchrone_functions?rev=1496270041&amp;do=diff</link>
        <description>Décorateur pour rendre une fonctionne asynchrone

Source : &lt;https://pykodz.wordpress.com/2010/11/15/async-decorator/&gt;


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from threading import Thread
from time import sleep

class async(Thread):

    def __init__(self, callback, errback):
        super(async, self).__init__()
        self.callback = callback
        self.errback = errback

    def __call__(self, func):
        # à l&#039;appel de la fonction, on récupère juste la fonction
        # et ses…</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:browser_emulation?rev=1365614017&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-04-10T17:13:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>browser_emulation</title>
        <link>https://wiki.velannes.com/python:programmes:browser_emulation?rev=1365614017&amp;do=diff</link>
        <description>Simuler un navigateur avec Python

	*  mechanize : &lt;https://pypi.python.org/pypi/mechanize/&gt;
	*  spynner : &lt;https://pypi.python.org/pypi/spynner/&gt;
	*  selenium : &lt;https://pypi.python.org/pypi/selenium/&gt;</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:classes_heritage_exemple?rev=1496314935&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-06-01T11:02:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>classes_heritage_exemple</title>
        <link>https://wiki.velannes.com/python:programmes:classes_heritage_exemple?rev=1496314935&amp;do=diff</link>
        <description>Exemple d&#039;héritage de classe


class parent1:
    def __init__(self):
        print(&quot;init parent1&quot;)
        self.var1 = &#039;myvar1&#039;

    def defParent1(self):
        print(&#039;defParent1&#039;)

    def test(self):
        print(&#039;parent1&#039;)

class parent2:
    def __init__(self):
        print(&quot;init parent2&quot;)
        self.var2 = &#039;myvar2&#039;

    def defParent2(self):
        print(&#039;defParent2&#039;)

    def test(self):
        print(&#039;parent2&#039;)

class child(parent1, parent2):
    def __init__(self):
        print(…</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:convert_dict_object?rev=1438423139&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-08-01T09:58:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>convert_dict_object</title>
        <link>https://wiki.velannes.com/python:programmes:convert_dict_object?rev=1438423139&amp;do=diff</link>
        <description>Conversion d&#039;objet en dict et inversement

	*  Source

Conversion d&#039;un objet en dict


#!/usr/bin/env python
class Person(object):
    def __init__(self, age, name):
        self.age = age
        self.name = name


Exemple :


&gt;&gt;&gt; a = Person(&#039;GigiX&#039;, 30)
&gt;&gt;&gt; a.__dict__
{ &#039;name&#039; : &#039;GigiX&#039;, &#039;age&#039; : 30 }</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:deactivate_traceback?rev=1386106943&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-12-03T21:42:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>deactivate_traceback</title>
        <link>https://wiki.velannes.com/python:programmes:deactivate_traceback?rev=1386106943&amp;do=diff</link>
        <description>Désactiver traceback


sys.tracebacklimit=0</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:dump_object?rev=1392491763&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-02-15T19:16:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dump_object</title>
        <link>https://wiki.velannes.com/python:programmes:dump_object?rev=1392491763&amp;do=diff</link>
        <description>DUMP

Objet


from inspect import getmembers
from pprint import pprint
pprint(getmembers(object))


Module


dir(module)</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:exec_cmd2?rev=1363126656&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-12T22:17:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>exec_cmd2</title>
        <link>https://wiki.velannes.com/python:programmes:exec_cmd2?rev=1363126656&amp;do=diff</link>
        <description>Lancer un programme externe

commands.getstatusoutput retourne le code de retour et l&#039;output.

	*  Avec python2


&gt;&gt;&gt; import commands
&gt;&gt;&gt; ret, output = commands.getstatusoutput(&#039;ls -l&#039;)
&gt;&gt;&gt; print(ret)
0
&gt;&gt;&gt; print(output)
total 12
drwxr-xr-x 2 gigi users 4096  9 janv. 00:24 Desktop
drwxr-xr-x 5 gigi users 4096 16 févr. 23:06 Documents
drwxr-xr-x 2 gigi users 4096 18 févr. 14:24 Downloads</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:file_read?rev=1370129492&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-06-01T23:31:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>file_read</title>
        <link>https://wiki.velannes.com/python:programmes:file_read?rev=1370129492&amp;do=diff</link>
        <description>Lire un fichier ligne par ligne en utilisant les iterations


with open(&#039;mydata.txt&#039;) as fp:
    for line in iter(fp.readline, &#039;&#039;):
        process_line(line)</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:find?rev=1564421257&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-29T17:27:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>find</title>
        <link>https://wiki.velannes.com/python:programmes:find?rev=1564421257&amp;do=diff</link>
        <description>Chercher un fichier ou dossier

os.walk


import os, fnmatch

def locate(pattern, root=os.curdir):
    &#039;&#039;&#039;Locate all files matching supplied filename pattern in and below
    supplied root directory.&#039;&#039;&#039;
    for path, dirs, files in os.walk(os.path.abspath(root)):
        for filename in fnmatch.filter(files, pattern):
            yield os.path.join(path, filename)</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:grouper_chaines_listes?rev=1364066801&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-23T19:26:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>grouper_chaines_listes</title>
        <link>https://wiki.velannes.com/python:programmes:grouper_chaines_listes?rev=1364066801&amp;do=diff</link>
        <description>Exemples


&gt;&gt;&gt; &#039;.&#039;.join([&#039;&#039;.join(a) for a in zip(*[iter(tel)]*2)])
&#039;06.12.34.56.78&#039;



&gt;&gt;&gt; import itertools
&gt;&gt;&gt; liste = [1, 2 ,3, 4, 5, 6, 7, 8, 8, 10, 11, 12, 13, 14]
&gt;&gt;&gt; list(itertools.izip_longest(*[iter(liste)]*3))
[(1, 2, 3), (4, 5, 6), (7, 8, 8), (10, 11, 12), (13, 14, None)]</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:indentation?rev=1363129561&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-12T23:06:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>indentation</title>
        <link>https://wiki.velannes.com/python:programmes:indentation?rev=1363129561&amp;do=diff</link>
        <description>Réindenter un script Python

Ce script permet de réindenter un script python avec au choix les tabulations ou les espaces.
./reindent.py  &lt;fichier à réindenter&gt; &lt;fichier de sortie&gt; [tab|space] [nombre]
Exemple pour réindenter le fichier toto.py en mettant 3 espaces pour la réindentation :</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:listes_operations?rev=1364069416&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-23T20:10:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>listes_operations</title>
        <link>https://wiki.velannes.com/python:programmes:listes_operations?rev=1364069416&amp;do=diff</link>
        <description>Exemples :


# Multiplie les nombres de la liste au carré
&gt;&gt;&gt; map(lambda x: x**2, range(10))
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# N&#039;affiche que les nombres de la liste qui sont divisibles pas 2
&gt;&gt;&gt; filter(lambda x: x % 2 == 0, range(10))
[0, 2, 4, 6, 8]

# N&#039;affiche que les nombre de la liste qui sont divisibles par 2 et les multiplie au carré
&gt;&gt;&gt; map(lambda x: x**2, filter(lambda y: y % 2 == 0, range(10)))
[0, 4, 16, 36, 64]</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:multiple_loop_in_one?rev=1393089443&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-02-22T17:17:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>multiple_loop_in_one</title>
        <link>https://wiki.velannes.com/python:programmes:multiple_loop_in_one?rev=1393089443&amp;do=diff</link>
        <description>Boucles optimisées avec condition


[z for b in a for c in b for d in c ... for z in y]
Which would be like having this regular for-loop:

for b in a:
    for c in b:
        for d in c:
            ...
                for z in y:
                    # have z</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:multiprocessing1?rev=1363129667&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-12T23:07:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>multiprocessing1</title>
        <link>https://wiki.velannes.com/python:programmes:multiprocessing1?rev=1363129667&amp;do=diff</link>
        <description>Pourquoi il faut utiliser le multiprocessing et non le threading sous python : &lt;http://blog.unix4fun.net/post/2007/09/17/python-le-GIL-pourquoi-et-comment-faire&gt;

Module multiprocessing

Méthode avec Pool :


#!/usr/bin/env python

from multiprocessing import Pool, cpu_count
from time import sleep

def f(x,y):
    sleep(2)
    return x*y

def k(x,y):
    sleep(2)
    return x+y

if __name__ == &#039;__main__&#039;:
    result=[]
    pool = Pool(processes = cpu_count())  # start x worker processes
    resu…</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:replace?rev=1363126753&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-12T22:19:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>replace</title>
        <link>https://wiki.velannes.com/python:programmes:replace?rev=1363126753&amp;do=diff</link>
        <description>Remplacer une chaine


&gt;&gt;&gt; import re
&gt;&gt;&gt; re.sub(&#039;(^\s*%s\s*%s\s*).*&#039; % (&#039;ip&#039;, &#039;=&#039;), lambda m: &quot;%s%s&quot; % (m.group(1), &#039;127.0.0.2&#039;), &#039;ip=127.0.0.1&#039;)</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:show_permissions?rev=1391943437&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-02-09T10:57:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>show_permissions</title>
        <link>https://wiki.velannes.com/python:programmes:show_permissions?rev=1391943437&amp;do=diff</link>
        <description>Permission


&gt;&gt;&gt; oct(os.stat(&quot;toto.txt&quot;).st_mode &amp; 0777)
&#039;0644&#039;



&gt;&gt;&gt; oct(stat.S_IMODE(os.lstat(&quot;toto.txt&quot;).st_mode))
&#039;0644&#039;



&gt;&gt;&gt; os.stat(&quot;toto.txt&quot;).st_uid
0



&gt;&gt;&gt; os.stat(&quot;toto.txt&quot;).st_gid
0</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:sort_array?rev=1393025666&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-02-21T23:34:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sort_array</title>
        <link>https://wiki.velannes.com/python:programmes:sort_array?rev=1393025666&amp;do=diff</link>
        <description>Trier un tableau

Tous les exemples : &lt;https://wiki.python.org/moin/HowTo/Sorting&gt;


&gt;&gt;&gt; Lf = [&#039;ACBD&#039;, &#039;AABB&#039;, &#039;ABBB&#039;,&#039;ACBD&#039;,&#039;ACBD&#039;,&#039;ABBB&#039;]
&gt;&gt;&gt; Li = [&#039;ACBD&#039;, &#039;AAAB&#039;, &#039;AABB&#039;,&#039;ACBD&#039;,&#039;ACBD&#039;,&#039;AABB&#039;]
&gt;&gt;&gt; Ltemp = Li+ Lf
&gt;&gt;&gt; Lt = sorted([(x, Ltemp.count(x)) for x in set(Ltemp)])
&gt;&gt;&gt; print Lt
[(&#039;AAAB&#039;, 1), (&#039;AABB&#039;, 3), (&#039;ABBB&#039;, 2), (&#039;ACBD&#039;, 6)]</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:swap?rev=1363456212&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-03-16T17:50:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>swap</title>
        <link>https://wiki.velannes.com/python:programmes:swap?rev=1363456212&amp;do=diff</link>
        <description>Afficher la swap consommée par les processus


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Ghislain LE MEUR

import os, operator, sys, pwd
procPath = &#039;/proc&#039;

def bytes2human(n):
  symbols = (&#039; MB&#039;, &#039; GB&#039;, &#039; TB&#039;, &#039; PB&#039;, &#039; EB&#039;, &#039; ZB&#039;, &#039; YB&#039;)
  prefix = {}
  for i, s in enumerate(symbols):
    prefix[s] = 1 &lt;&lt; (i+1)*10
  for s in reversed(symbols):
    if n &gt;= prefix[s]:
      value = float(n) / prefix[s]
      return &#039;%.2f%s&#039; % (value, s)
  return &quot;%s KB&quot; % n

def lsPid():
  return [int(_x) f…</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:timeout?rev=1370378086&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-06-04T20:34:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>timeout</title>
        <link>https://wiki.velannes.com/python:programmes:timeout?rev=1370378086&amp;do=diff</link>
        <description>Timeout


from functools import wraps
import errno
import os
import signal

class TimeoutError(Exception):
    pass

def timeout(seconds=10, error_message=os.strerror(errno.ETIME)):
    def decorator(func):
        def _handle_timeout(signum, frame):
            raise TimeoutError(error_message)

        def wrapper(*args, **kwargs):
            signal.signal(signal.SIGALRM, _handle_timeout)
            signal.alarm(seconds)
            try:
                result = func(*args, **kwargs)
       …</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:twisted_ssh_server?rev=1392936532&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-02-20T22:48:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>twisted_ssh_server</title>
        <link>https://wiki.velannes.com/python:programmes:twisted_ssh_server?rev=1392936532&amp;do=diff</link>
        <description>Twisted SSH Server


#!/usr/bin/env python
# Ghislain LE MEUR
import twisted.cred as cred, twisted.cred.credentials, twisted.cred.checkers, twisted.cred.portal
import twisted.conch as conch, twisted.conch.recvline, twisted.conch.avatar, twisted.conch.checkers, twisted.conch.ssh, twisted.conch.ssh.factory, twisted.conch.ssh.session
import twisted.internet as internet, twisted.internet.defer
import twisted.application as application
from twisted.python.randbytes import secureRandom
from twisted.py…</description>
    </item>
    <item rdf:about="https://wiki.velannes.com/python:programmes:twisted_ssl_server?rev=1392937519&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-02-20T23:05:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>twisted_ssl_server</title>
        <link>https://wiki.velannes.com/python:programmes:twisted_ssl_server?rev=1392937519&amp;do=diff</link>
        <description>Authentification par certificat SSL avec twisted et openssl

Serveur


#!/usr/bin/env python
# Author : Ghislain LE MEUR
try:
        import sys, os, socket, shutil, logging
        from OpenSSL import SSL, crypto
        from twisted.internet.protocol import Factory, Protocol
        from twisted.internet import ssl, reactor
        from twisted.python import log
except Exception as e:
        print(&#039;%s&#039;, e)
        sys.exit(1)

port = 8000

ssl_dir = os.path.join(os.path.dirname(sys.argv[0]), …</description>
    </item>
</rdf:RDF>
