Bonjour à tous,
Alors j'ai un soucis que je ne comprend pas.
J'ouvre 3 fichiers en début de mon script en écriture.
Ensuite j'écris dedans et je les ferme.
Juste après les avoir fermés je ré-ouvre les fichiers mais cette fois ci en utilisant le mode "append" car je souhaite ajouter à ce fichier des éléments d'un autre fichier.
Lorsque je procède de la sorte j'obtient le message d'erreur suivant :
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 SIGMA_1_PRINCIPAL = "SIGMA_1_PRINCIPAL.txt" SIGMA_2_PRINCIPAL = "SIGMA_2_PRINCIPAL.txt" VON_MISES = "VON_MISES.txt" SIGMA_1_PRINCIPAL_FILE = open(SIGMA_1_PRINCIPAL, "w") SIGMA_2_PRINCIPAL_FILE = open(SIGMA_2_PRINCIPAL, "w") VON_MISES_FILE = open(VON_MISES, "w") .................. .................. .................. .................. SIGMA_1_PRINCIPAL_FILE.write("\t".join(FIRST_LINE)+'\n') SIGMA_2_PRINCIPAL_FILE.write("\t".join(FIRST_LINE)+'\n') VON_MISES_FILE.write("\t".join(FIRST_LINE)+'\n') SIGMA_1_PRINCIPAL_FILE.close() SIGMA_2_PRINCIPAL_FILE.close() VON_MISES_FILE.close() SIGMA_1_PRINCIPAL_FILE = open(SIGMA_1_PRINCIPAL, "a") SIGMA_2_PRINCIPAL_FILE = open(SIGMA_2_PRINCIPAL, "a") VON_MISES_FILE = open(VON_MISES, "a") tmp_SIGMA_1_PRINCIPAL_FILE = open(tmp_SIGMA_1_PRINCIPAL,"r") tmp_SIGMA_2_PRINCIPAL_FILE = open(tmp_SIGMA_2_PRINCIPAL,"r") tmp_VON_MISES_FILE = open(tmp_VON_MISES,"r") shutil.copyfileobj(tmp_SIGMA_1_PRINCIPAL_FILE, SIGMA_1_PRINCIPAL_FILE) shutil.copyfileobj(tmp_SIGMA_2_PRINCIPAL_FILE, SIGMA_2_PRINCIPAL_FILE) shutil.copyfileobj(tmp_VON_MISES_FILE, VON_MISES_FILE) .................. .................. .................. .................. SIGMA_1_PRINCIPAL_FILE.close() SIGMA_2_PRINCIPAL_FILE.close() VON_MISES_FILE.close()
Ce que je ne comprend pas c'est que lorsque je fais la même chose mais plutôt que de rentrer mes noms de fichier via des variables intermédiaires je les rentre en dur lors de l'ouverture du fichier je n'ai pas de problèmes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Traceback (most recent call last): File "C:\Users\users\Desktop\enveloppe\13052016\sigma_principal.py", line 135, in <module> SIGMA_1_PRINCIPAL_FILE = open(SIGMA_1_PRINCIPAL, "a") UnicodeDecodeError: 'ascii' codec can't decode byte 0xf0 in position 4: ordinal not in range(128).
Honnêtement je ne comprend pas. Cela à l'air dêtre un problème d'Unicode mais pourquoi dans un cas ça fonctionne et dans l'autre cas ça ne fonctionne pas ?
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 SIGMA_1_PRINCIPAL = "SIGMA_1_PRINCIPAL.txt" SIGMA_2_PRINCIPAL = "SIGMA_2_PRINCIPAL.txt" VON_MISES = "VON_MISES.txt" SIGMA_1_PRINCIPAL_FILE = open(SIGMA_1_PRINCIPAL, "w") SIGMA_2_PRINCIPAL_FILE = open(SIGMA_2_PRINCIPAL, "w") VON_MISES_FILE = open(VON_MISES, "w") .................. .................. .................. .................. SIGMA_1_PRINCIPAL_FILE.write("\t".join(FIRST_LINE)+'\n') SIGMA_2_PRINCIPAL_FILE.write("\t".join(FIRST_LINE)+'\n') VON_MISES_FILE.write("\t".join(FIRST_LINE)+'\n') SIGMA_1_PRINCIPAL_FILE.close() SIGMA_2_PRINCIPAL_FILE.close() VON_MISES_FILE.close() SIGMA_1_PRINCIPAL_FILE = open("SIGMA_1_PRINCIPAL.txt", "a") SIGMA_2_PRINCIPAL_FILE = open("SIGMA_2_PRINCIPAL.txt", "a") VON_MISES_FILE = open("VON_MISES.txt", "a") tmp_SIGMA_1_PRINCIPAL_FILE = open(tmp_SIGMA_1_PRINCIPAL,"r") tmp_SIGMA_2_PRINCIPAL_FILE = open(tmp_SIGMA_2_PRINCIPAL,"r") tmp_VON_MISES_FILE = open(tmp_VON_MISES,"r") shutil.copyfileobj(tmp_SIGMA_1_PRINCIPAL_FILE, SIGMA_1_PRINCIPAL_FILE) shutil.copyfileobj(tmp_SIGMA_2_PRINCIPAL_FILE, SIGMA_2_PRINCIPAL_FILE) shutil.copyfileobj(tmp_VON_MISES_FILE, VON_MISES_FILE) .................. .................. .................. .................. SIGMA_1_PRINCIPAL_FILE.close() SIGMA_2_PRINCIPAL_FILE.close() VON_MISES_FILE.close()
PS : Si je met les noms de fichier dans des variables c'est parce qu'ils sont défini en début de fichier afin que l'utilisateur n'ait qu'à les changer à un seul endroit dans le script s'il le souhaite.
Merci d'avance pour ceux qui se pencheront sur mon problème.
Partager