打开np.memmap公司()具有上下文管理功能的python中的二进制文件

2024-09-30 06:25:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个很奇怪的问题,我无法从我的一个较大的脚本打开文件。在

这个问题是断断续续的,我似乎无法理解错误所在。 我得到了这个错误:

IOError: [Errno 22] invalid mode ('w+') or filename: 'D:\\R4a\\2014_05\\R01359\\R01359_data_dwnhi.dat'

从我的脚本中的这个命令:

^{pr2}$

当我使用:

 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'

计算结果为True。另外,当我在ipython中单独运行open命令时,它成功地打开了包含以下内容的文件:

open('D:\\R4a\\2014_05\\R01359\\R01359_data_dwnhi.dat', 'w+')

我不知所措,认为错误是误导。正如我前面所说的,这个问题是间歇性的,并且对某些文件起作用。有人知道我做错了什么吗?在

我在一台64位的Windows8机器上工作,运行的是来自Anaconda2.1.0(64位)发行版的Python2.7.8版。在


Tags: 文件path命令脚本databaseos错误
2条回答

在一些尝试性错误之后,指示np.memmap()打开一个文件,而不是.__doc__报告的mode字符串。在

#                           ++++++++ TRY:
#                                                      ||||||||
#                                                      vvvvvvvv
|>>> MM = np.memmap( "temporary_DATA.memmap", mode = 'wNONSENSE+' )
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27.anaconda\lib\site-packages\numpy\core\memmap.py", line 208, in __new__
    (valid_filemodes + list(mode_equivalents.keys())))
ValueError: mode must be one of ['r', 'c', 'r+', 'w+', 'readwrite', 'write', 'readonly', 'copyonwrite']
#                                 ^    ^    ^     ^     ^            ^        ^           ^
#                                 |    |    |     |     |            |        |           |
#                -+  +  +  -+  -+      +    +     -+

最后,这个错误回溯显示了可选的字符串,没有在np.memmap.__doc__中列出,它们工作正常

^{pr2}$

对于鹰派的pythoneers来说,这篇文章有意使用非PEP-8源代码格式,因为作者的经验是,在学习阶段,代码读取能力提高了对任务解决方案的关注,有助于习惯底层概念,而不是花精力在正式的排版上。希望提供帮助的原则得到尊重,非PEP-8样式格式以便于阅读的名义得到原谅。

您像普通文件一样打开它,因此出现错误:IOError: [Errno 22] invalid mode。请执行以下操作:

with open(path, 'wb') as f:
    pass

相关问题 更多 >

    热门问题