J'ai un problème très étrange où je ne peux pas ouvrir un fichier à partir d'un de mes plus gros scripts.Ouvrir le fichier binaire np.memmap() dans un gestionnaire de contexte python
Ce problème est intermittent et je n'arrive pas à comprendre l'erreur. Je reçois cette erreur:
IOError: [Errno 22] invalid mode ('w+') or filename: 'D:\\R4a\\2014_05\\R01359\\R01359_data_dwnhi.dat'
de cette commande dans mon script:
with open(os.path.normpath(os.path.join(sonpath,base+'_data_dwnhi.dat')), 'w+') as ff:
fp = np.memmap(ff, dtype='int16', mode='w+', shape=np.shape(tmp2))
quand j'utilise:
if os.path.exists(os.path.normpath(os.path.join(sonpath,base+'_data_dwnhi.dat')))== True:
print os.path.normpath(os.path.join(sonpath,base+'_data_dwnhi.dat')) + ' is a file'
comme il évalue True
. Aussi quand je lance la commande open
par lui-même en ipython
il ouvre le fichier avec sucessfully:
open('D:\\R4a\\2014_05\\R01359\\R01359_data_dwnhi.dat', 'w+')
Je suis à une perte pour les mots et je pense que errno 22
erreur est trompeur. Comme je l'ai dit plus tôt, le problème est intermittent et fonctionne sur certains fichiers. Est-ce que quelqu'un a une idée de ce que je fais mal?
Je travaille sur une machine Windows 8 64 bits et exécute la version 2.7.8 en python à partir d'une distribution Anaconda 2.1.0 (64 bits).
J'ai essayé les modes 'wb',' w + b' et 'w +'. Le mode 'w +' fonctionne sur certains fichiers mais pas sur d'autres. Et pourquoi cela fonctionnerait-il avec le mode 'w +' quand je le passerais à l'interpréteur python? – dubbbdan
Avez-vous vraiment? Votre trace n'est pas d'accord avec vous. 'wb' est pour l'ouverture en mode binaire. Il n'y a aucun intérêt à ouvrir un fichier dans w +: le symbole plus ne fait rien. Avez-vous lu la documentation pertinente? – Zizouz212
J'ai vraiment. J'ai essayé de déboguer cela pendant un certain temps maintenant et je sens que quelqu'un d'autre a déjà rencontré ce problème. Le mode 'w +' ouvre un fichier pour la lecture et l'écriture. Si je comprends bien, le '+' vous permet de remplacer le contenu des fichiers. Il peut être trouvé [ici] (http://www.tutorialspoint.com/python/python_files_io.htm) et [ici] (https://docs.python.org/2/library/io.html). – dubbbdan