J'ai des gigas =E0 copier depuis mon disque dur vers un disque
externe connect=E9 en USB. Et avant de copier, je dois v=E9rifier des
trucs pour savoir si je dois vraiment copier ou non.
Pour l'instant, la ligne de mon code python qui copie un r=E9pertoire
o=F9 sans surprise, rep.chemin d=E9signe le chemin du r=E9pertoire local et
rep.distant().chemin d=E9signe le chemin du r=E9pertoire vers lequel il
faut copier.
Pas que ce code ne marche pas, mais disons que le taux de transf=E8re
est inf=E9rieur =E0 2Mo par secondes, alors que je si copie =E0 la souris
dans konqueror (par exemple), j'ai entre 5 et 5 Mo par secondes.
Est-ce que quelqu'un sait comment on peut obtenir des taux de
transf=E8re =E9lev=E9s avec python ?
Peut-être reprendre le code, et l'améliorer (taille de buffers)...
Pas sûr que ça change grand chose. Il y a l'OS derrière qui a ses propres buffers...
Oui, mais entre lire et écrire des blocs de 1K et des blocs de 1M, je ne suis pas sûr que l'OS puisse faire les mêmes optimisations sur la gestion de ses buffers.
En plus, en utilisant directement les fonctions bas niveau type os.open(), on peut spécifier certaines options, du genre O_NONBLOCK / O_NDELAY...
Peut-être reprendre le code, et l'améliorer (taille de buffers)...
Pas sûr que ça change grand chose. Il y a l'OS derrière qui a ses
propres buffers...
Oui, mais entre lire et écrire des blocs de 1K et des blocs de 1M, je ne
suis pas sûr que l'OS puisse faire les mêmes optimisations sur la
gestion de ses buffers.
En plus, en utilisant directement les fonctions bas niveau type
os.open(), on peut spécifier certaines options, du genre O_NONBLOCK /
O_NDELAY...
Peut-être reprendre le code, et l'améliorer (taille de buffers)...
Pas sûr que ça change grand chose. Il y a l'OS derrière qui a ses propres buffers...
Oui, mais entre lire et écrire des blocs de 1K et des blocs de 1M, je ne suis pas sûr que l'OS puisse faire les mêmes optimisations sur la gestion de ses buffers.
En plus, en utilisant directement les fonctions bas niveau type os.open(), on peut spécifier certaines options, du genre O_NONBLOCK / O_NDELAY...
Peut-être reprendre le code, et l'améliorer (taille de buffers)...
Pas sûr que ça change grand chose. Il y a l'OS derrière qui a ses propres buffers...
Oui, mais entre lire et écrire des blocs de 1K et des blocs de 1M, je ne suis pas sûr que l'OS puisse faire les mêmes optimisations sur la gestion de ses buffers.
En plus, en utilisant directement les fonctions bas niveau type os.open(), on peut spécifier certaines options, du genre O_NONBLOCK / O_NDELAY...
Bref, faut tester.
Ce n'est pas une mauvaise idée. Sais-tu si la compil de python est
facile sous linux ? Je ferai quelques tests dans la semaine, et si ça donne quelque chose, je mettrai un post.
Peut-être reprendre le code, et l'améliorer (taille de buffers)...
Pas sûr que ça change grand chose. Il y a l'OS derrière qui a ses
propres buffers...
Oui, mais entre lire et écrire des blocs de 1K et des blocs de 1M, je ne
suis pas sûr que l'OS puisse faire les mêmes optimisations sur la
gestion de ses buffers.
En plus, en utilisant directement les fonctions bas niveau type
os.open(), on peut spécifier certaines options, du genre O_NONBLOCK /
O_NDELAY...
Bref, faut tester.
Ce n'est pas une mauvaise idée. Sais-tu si la compil de python est
facile sous linux ? Je ferai quelques tests dans la semaine, et si ça
donne quelque chose, je mettrai un post.
Peut-être reprendre le code, et l'améliorer (taille de buffers)...
Pas sûr que ça change grand chose. Il y a l'OS derrière qui a ses propres buffers...
Oui, mais entre lire et écrire des blocs de 1K et des blocs de 1M, je ne suis pas sûr que l'OS puisse faire les mêmes optimisations sur la gestion de ses buffers.
En plus, en utilisant directement les fonctions bas niveau type os.open(), on peut spécifier certaines options, du genre O_NONBLOCK / O_NDELAY...
Bref, faut tester.
Ce n'est pas une mauvaise idée. Sais-tu si la compil de python est
facile sous linux ? Je ferai quelques tests dans la semaine, et si ça donne quelque chose, je mettrai un post.
jean-michel bain-cornu
Pourquoi en serait-il autrement ? La question était idiote, il est vrai ; mais sait-on jamais...
Perso, je le compile comme ça :
./configure --enable-shared && make && make install.
Mes 2 cts.
Tu as compté la csg ?
Pourquoi en serait-il autrement ?
La question était idiote, il est vrai ; mais sait-on jamais...
Perso, je le compile comme ça :
./configure --enable-shared && make && make install.
Pourquoi en serait-il autrement ? La question était idiote, il est vrai ; mais sait-on jamais...
Perso, je le compile comme ça :
./configure --enable-shared && make && make install.
Mes 2 cts.
Tu as compté la csg ?
Laurent Pointal
Peut-être reprendre le code, et l'améliorer (taille de buffers)...
Pas sûr que ça change grand chose. Il y a l'OS derrière qui a ses propres buffers...
Oui, mais entre lire et écrire des blocs de 1K et des blocs de 1M, je ne suis pas sûr que l'OS puisse faire les mêmes optimisations sur la gestion de ses buffers.
En plus, en utilisant directement les fonctions bas niveau type os.open(), on peut spécifier certaines options, du genre O_NONBLOCK / O_NDELAY...
Bref, faut tester.
Ce n'est pas une mauvaise idée. Sais-tu si la compil de python est
facile sous linux ? Je ferai quelques tests dans la semaine, et si ça donne quelque chose, je mettrai un post.
Pourquoi veux-tu recompiler ?
os.open() et les options indiquées sont dispos en standard.
(note au cas où: après il faut utiliser les fonctions de lecture/écriture du module os, pas les méthodes sur les fichiers!)
Peut-être reprendre le code, et l'améliorer (taille de buffers)...
Pas sûr que ça change grand chose. Il y a l'OS derrière qui a ses
propres buffers...
Oui, mais entre lire et écrire des blocs de 1K et des blocs de 1M, je
ne suis pas sûr que l'OS puisse faire les mêmes optimisations sur la
gestion de ses buffers.
En plus, en utilisant directement les fonctions bas niveau type
os.open(), on peut spécifier certaines options, du genre O_NONBLOCK /
O_NDELAY...
Bref, faut tester.
Ce n'est pas une mauvaise idée. Sais-tu si la compil de python est
facile sous linux ? Je ferai quelques tests dans la semaine, et si ça
donne quelque chose, je mettrai un post.
Pourquoi veux-tu recompiler ?
os.open() et les options indiquées sont dispos en standard.
(note au cas où: après il faut utiliser les fonctions de
lecture/écriture du module os, pas les méthodes sur les fichiers!)
Peut-être reprendre le code, et l'améliorer (taille de buffers)...
Pas sûr que ça change grand chose. Il y a l'OS derrière qui a ses propres buffers...
Oui, mais entre lire et écrire des blocs de 1K et des blocs de 1M, je ne suis pas sûr que l'OS puisse faire les mêmes optimisations sur la gestion de ses buffers.
En plus, en utilisant directement les fonctions bas niveau type os.open(), on peut spécifier certaines options, du genre O_NONBLOCK / O_NDELAY...
Bref, faut tester.
Ce n'est pas une mauvaise idée. Sais-tu si la compil de python est
facile sous linux ? Je ferai quelques tests dans la semaine, et si ça donne quelque chose, je mettrai un post.
Pourquoi veux-tu recompiler ?
os.open() et les options indiquées sont dispos en standard.
(note au cas où: après il faut utiliser les fonctions de lecture/écriture du module os, pas les méthodes sur les fichiers!)
jean-michel bain-cornu
En plus, en utilisant directement les fonctions bas niveau type os.open(), on peut spécifier certaines options, du genre O_NONBLOCK / O_NDELAY...
Bref, faut tester.
Ce n'est pas une mauvaise idée. Sais-tu si la compil de python est
facile sous linux ? Je ferai quelques tests dans la semaine, et si ça donne quelque chose, je mettrai un post.
Pourquoi veux-tu recompiler ? Pas examiné assez bien les post. J'avais en tête une intervention sur
les sources C sans penser qu'une partie plus qu'appréciable est en python lui-même.
os.open() et les options indiquées sont dispos en standard.
(note au cas où: après il faut utiliser les fonctions de lecture/écriture du module os, pas les méthodes sur les fichiers!)
J'ai trouvé sans pb la fonction copyfile(src, dst) dans shutil.py, qui
fait deux open avec 'rb' et 'wb', mais quid de l'open lui-même ? Et je ne vois pas non plus ces fonctions de lecture/écriture du module os...
En plus, en utilisant directement les fonctions bas niveau type
os.open(), on peut spécifier certaines options, du genre O_NONBLOCK /
O_NDELAY...
Bref, faut tester.
Ce n'est pas une mauvaise idée. Sais-tu si la compil de python est
facile sous linux ? Je ferai quelques tests dans la semaine, et si ça
donne quelque chose, je mettrai un post.
Pourquoi veux-tu recompiler ?
Pas examiné assez bien les post. J'avais en tête une intervention sur
les sources C sans penser qu'une partie plus qu'appréciable est en
python lui-même.
os.open() et les options indiquées sont dispos en standard.
(note au cas où: après il faut utiliser les fonctions de
lecture/écriture du module os, pas les méthodes sur les fichiers!)
J'ai trouvé sans pb la fonction copyfile(src, dst) dans shutil.py, qui
fait deux open avec 'rb' et 'wb', mais quid de l'open lui-même ? Et je
ne vois pas non plus ces fonctions de lecture/écriture du module os...
En plus, en utilisant directement les fonctions bas niveau type os.open(), on peut spécifier certaines options, du genre O_NONBLOCK / O_NDELAY...
Bref, faut tester.
Ce n'est pas une mauvaise idée. Sais-tu si la compil de python est
facile sous linux ? Je ferai quelques tests dans la semaine, et si ça donne quelque chose, je mettrai un post.
Pourquoi veux-tu recompiler ? Pas examiné assez bien les post. J'avais en tête une intervention sur
les sources C sans penser qu'une partie plus qu'appréciable est en python lui-même.
os.open() et les options indiquées sont dispos en standard.
(note au cas où: après il faut utiliser les fonctions de lecture/écriture du module os, pas les méthodes sur les fichiers!)
J'ai trouvé sans pb la fonction copyfile(src, dst) dans shutil.py, qui
fait deux open avec 'rb' et 'wb', mais quid de l'open lui-même ? Et je ne vois pas non plus ces fonctions de lecture/écriture du module os...
Laurent Pointal
J'ai trouvé sans pb la fonction copyfile(src, dst) dans shutil.py, qui fait deux open avec 'rb' et 'wb', mais quid de l'open lui-même ? Et je ne vois pas non plus ces fonctions de lecture/écriture du module os...
Elles sont directement dans l'espace de noms du module os:
Et les options de flag pour open sont aussi dans os.
Attention: pas de import * sur os, sinon tu écrase le open builtin par le open d'os, et ils ont des valeurs de retour différentes (os.open() retourne un int file descriptor).
J'ai trouvé sans pb la fonction copyfile(src, dst) dans shutil.py, qui
fait deux open avec 'rb' et 'wb', mais quid de l'open lui-même ? Et je
ne vois pas non plus ces fonctions de lecture/écriture du module os...
Elles sont directement dans l'espace de noms du module os:
Et les options de flag pour open sont aussi dans os.
Attention: pas de import * sur os, sinon tu écrase le open builtin par
le open d'os, et ils ont des valeurs de retour différentes (os.open()
retourne un int file descriptor).
J'ai trouvé sans pb la fonction copyfile(src, dst) dans shutil.py, qui fait deux open avec 'rb' et 'wb', mais quid de l'open lui-même ? Et je ne vois pas non plus ces fonctions de lecture/écriture du module os...
Elles sont directement dans l'espace de noms du module os:
Et les options de flag pour open sont aussi dans os.
Attention: pas de import * sur os, sinon tu écrase le open builtin par le open d'os, et ils ont des valeurs de retour différentes (os.open() retourne un int file descriptor).