j'ai un script dont le but est de traiter tous les fichiers d'un répertoire.
while True:
lstFile = glob(os.path.join(repertoire_à_scanner,'*.txt'))
for src in lstFile: Traiter( lstFile )
time.sleep(1)
Mon problème est le suivant.
Le répertoire à scruter est alimenté par transfert FTP et parfois le
traitement du fichier est lancé avant que le fichier ne soit
complétement transféré.
Par quel moyen puis je m'assurer que le fichier est bien complet avant
de le traiter.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sébastien V.
"Didier FRAISSE" a écrit dans le message news: 41da4507$0$20276$
Bonjour
j'ai un script dont le but est de traiter tous les fichiers d'un répertoire.
while True: lstFile = glob(os.path.join(repertoire_à_scanner,'*.txt')) for src in lstFile: Traiter( lstFile ) time.sleep(1)
Mon problème est le suivant. Le répertoire à scruter est alimenté par transfert FTP et parfois le traitement du fichier est lancé avant que le fichier ne soit complétement transféré.
Par quel moyen puis je m'assurer que le fichier est bien complet avant de le traiter.
Merci d'avance Didier
Salut Didier,
Si tu as accès au logiciel qui fait du FTP tu peux mettre en place une solution à l'aide d'un fichier lock :
Ton FTP copie un fichier vide "NOM_FICHIER.lock" puis envoie "NOM_FICHIER" et enfin copie dans "NOM_FICHIER.lock" un texte "OK". Il te suffit d'attendre ces fichiers "lock" et dès que tu en as un d'attendre qu'il contienne "OK".
Sébastien
"Didier FRAISSE" <dfraisse@free.fr> a écrit dans le message news:
41da4507$0$20276$636a15ce@news.free.fr...
Bonjour
j'ai un script dont le but est de traiter tous les fichiers d'un
répertoire.
while True:
lstFile = glob(os.path.join(repertoire_à_scanner,'*.txt'))
for src in lstFile: Traiter( lstFile )
time.sleep(1)
Mon problème est le suivant.
Le répertoire à scruter est alimenté par transfert FTP et parfois le
traitement du fichier est lancé avant que le fichier ne soit
complétement transféré.
Par quel moyen puis je m'assurer que le fichier est bien complet avant
de le traiter.
Merci d'avance
Didier
Salut Didier,
Si tu as accès au logiciel qui fait du FTP tu peux mettre en place une
solution à l'aide d'un fichier lock :
Ton FTP copie un fichier vide "NOM_FICHIER.lock" puis envoie "NOM_FICHIER"
et enfin copie dans "NOM_FICHIER.lock" un texte "OK". Il te suffit
d'attendre ces fichiers "lock" et dès que tu en as un d'attendre qu'il
contienne "OK".
"Didier FRAISSE" a écrit dans le message news: 41da4507$0$20276$
Bonjour
j'ai un script dont le but est de traiter tous les fichiers d'un répertoire.
while True: lstFile = glob(os.path.join(repertoire_à_scanner,'*.txt')) for src in lstFile: Traiter( lstFile ) time.sleep(1)
Mon problème est le suivant. Le répertoire à scruter est alimenté par transfert FTP et parfois le traitement du fichier est lancé avant que le fichier ne soit complétement transféré.
Par quel moyen puis je m'assurer que le fichier est bien complet avant de le traiter.
Merci d'avance Didier
Salut Didier,
Si tu as accès au logiciel qui fait du FTP tu peux mettre en place une solution à l'aide d'un fichier lock :
Ton FTP copie un fichier vide "NOM_FICHIER.lock" puis envoie "NOM_FICHIER" et enfin copie dans "NOM_FICHIER.lock" un texte "OK". Il te suffit d'attendre ces fichiers "lock" et dès que tu en as un d'attendre qu'il contienne "OK".
Sébastien
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle.
Bonjour !
Gérer des LOCKs via FTP ; en voilà une (bonne) idée... Mais, à la place de ces fichiers LOCKS, on pourrait envisager des fichiers "Queue", ou "Semaphore", non ?
- c'était juste histoire de discuter un peu -
MCI
Bonjour !
Gérer des LOCKs via FTP ; en voilà une (bonne) idée...
Mais, à la place de ces fichiers LOCKS, on pourrait envisager des fichiers
"Queue", ou "Semaphore", non ?
Gérer des LOCKs via FTP ; en voilà une (bonne) idée... Mais, à la place de ces fichiers LOCKS, on pourrait envisager des fichiers "Queue", ou "Semaphore", non ?
- c'était juste histoire de discuter un peu -
MCI
Sébastien V.
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle. wrote:
Bonjour !
Gérer des LOCKs via FTP ; en voilà une (bonne) idée... Mais, à la place de ces fichiers LOCKS, on pourrait envisager des fichiers "Queue", ou "Semaphore", non ?
Tu veux bien expliquer ?
Pour moi Queue et Semaphore sont des concepts qui ne s'appliquent pas avec du FTP (ce qui serait sympa) mais à du multi-threading
Sébastien
Michel Claveau - abstraction méta-galactique non triviale en fuite
perpétuelle. wrote:
Bonjour !
Gérer des LOCKs via FTP ; en voilà une (bonne) idée...
Mais, à la place de ces fichiers LOCKS, on pourrait envisager des
fichiers "Queue", ou "Semaphore", non ?
Tu veux bien expliquer ?
Pour moi Queue et Semaphore sont des concepts qui ne s'appliquent pas avec
du FTP (ce qui serait sympa) mais à du multi-threading
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle. wrote:
Bonjour !
Gérer des LOCKs via FTP ; en voilà une (bonne) idée... Mais, à la place de ces fichiers LOCKS, on pourrait envisager des fichiers "Queue", ou "Semaphore", non ?
Tu veux bien expliquer ?
Pour moi Queue et Semaphore sont des concepts qui ne s'appliquent pas avec du FTP (ce qui serait sympa) mais à du multi-threading
Sébastien
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle.
Bonsoir !
Pour moi Queue et Semaphore sont des concepts qui ne s'appliquent pas avec du FTP (ce qui serait sympa) mais à du multi-threading
Exact, mais LOCK est aussi une notion existant dans le (multi)-threading.
En gros, ton système de fichiers LOCKS est très bien, mais, tel que je l'ai compris, il n'empêchera pas un client FTP d'envoyer une nouvelle version d'un fichier, même si le traitement des fichiers est déjà en cours de lecture de ce fichier. Pour cela, il faudrait que le client FTP respecte lui aussi des règles d'accès. D'où l'analogie avec les sémaphores, ou mieux, les Queue.
Maintenant, pour l'implémentation, je pense qu'il faudrait réfléchir un peu plus. On devrait pouvoir s'inspirer du verrouillage optimiste des SGBD clients-serveur, notamment en mode déconnecté.
Bonne soirée. -- Michel Claveau
Bonsoir !
Pour moi Queue et Semaphore sont des concepts qui ne s'appliquent pas
avec du FTP (ce qui serait sympa) mais à du multi-threading
Exact, mais LOCK est aussi une notion existant dans le (multi)-threading.
En gros, ton système de fichiers LOCKS est très bien, mais, tel que je l'ai
compris, il n'empêchera pas un client FTP d'envoyer une nouvelle version
d'un fichier, même si le traitement des fichiers est déjà en cours de
lecture de ce fichier.
Pour cela, il faudrait que le client FTP respecte lui aussi des règles
d'accès. D'où l'analogie avec les sémaphores, ou mieux, les Queue.
Maintenant, pour l'implémentation, je pense qu'il faudrait réfléchir un peu
plus. On devrait pouvoir s'inspirer du verrouillage optimiste des SGBD
clients-serveur, notamment en mode déconnecté.
Pour moi Queue et Semaphore sont des concepts qui ne s'appliquent pas avec du FTP (ce qui serait sympa) mais à du multi-threading
Exact, mais LOCK est aussi une notion existant dans le (multi)-threading.
En gros, ton système de fichiers LOCKS est très bien, mais, tel que je l'ai compris, il n'empêchera pas un client FTP d'envoyer une nouvelle version d'un fichier, même si le traitement des fichiers est déjà en cours de lecture de ce fichier. Pour cela, il faudrait que le client FTP respecte lui aussi des règles d'accès. D'où l'analogie avec les sémaphores, ou mieux, les Queue.
Maintenant, pour l'implémentation, je pense qu'il faudrait réfléchir un peu plus. On devrait pouvoir s'inspirer du verrouillage optimiste des SGBD clients-serveur, notamment en mode déconnecté.