当前位置: 首页 > 面试题库 >

如何进行虚拟文件处理?

谷梁云瀚
2023-03-14
问题内容

因此,对于创建文件,我使用以下命令:

fileHandle = open('fileName', 'w')

然后将内容写入文件,关闭文件。在下一步中,我处理文件。在程序的最后,我得到一个需要删除的“物理文件”。

有没有一种方法可以编写行为与“物理”文件完全相同的“虚拟”文件(允许以相同的方式对其进行操作),但在Python运行结束时不存在该文件?


问题答案:

您可能要考虑使用a
tempfile.SpooledTemporaryFile,它可以为您提供两全其美的意义,因为它将首先创建一个基于内存的临时虚拟文件,但是如果保存在内存中的数据超过指定的数量,它将自动切换到基于物理磁盘的文件尺寸。

另一个不错的功能是(使用内存时)它将自动使用io.BytesIO或,io.StringIO具体取决于使用的是什么mode—允许您对其读写Unicode字符串或二进制数据(字节)。

唯一棘手的部分可能是您需要避免在步骤之间关闭文件,因为这样做可能会导致文件从内存或磁盘中删除。相反,您可以使用文件seek(0)方法调用将其倒回至开头。

当您完成文件的处理并关闭它后,如果其中的数据量过多,则会自动将其从磁盘中删除,并将其移到物理文件中。



 类似资料:
  • 问题内容: 我有一个方法,期望输入变量之一是java.io.File类型,但是我得到的只是InputStream。另外,我无法更改方法的签名。 如何将InputStream转换为File类型,而无需实际将文件写入文件系统? 问题答案: 这样的事情应该起作用。请注意,为简单起见,我使用了Java 7功能(尝试使用可关闭资源的块)和Apache commons- io的IOUtils。如果您不能使用它

  • 在早期的嵌入式系统中,需要存储的数据比较少,数据类型也比较单一,往往使用直接在存储设备中的指定地址写入数据的方法来存储数据。然而随着嵌入式设备功能的发展,需要存储的数据越来越多,也越来越复杂,这时仍使用旧方法来存储并管理数据就变得非常繁琐困难。因此我们需要新的数据管理方式来简化存储数据的组织形式,这种方式就是我们接下来要介绍的文件系统。 文件系统是一套实现了数据的存储、分级组织、访问和获取等操作的

  • 理解虚拟机的配置文件:Vagrantfile。 Vagrantfile 在项目的目录下面有个 Vagrantfile 文件,它是我们执行 vagrant init 命令创建的一个虚拟机的配置文件。在这个配置文件里可以包含项目使用的虚拟机的相关配置。比如我在执行 vagrant init 命令的时候加了一个 centos/7 ,指定了虚拟机使用的镜像的文件,这样创建的这个配置文件,实际的内容会是这样

  • 我一直在使用Spyder安装的Anaconda发行版,默认使用Python 2.7。目前我需要用Python 3.4设置一个开发虚拟环境。 在线调查后的两大建议是: 首先设置虚拟环境,并指向更改Spyder的首选项,例如这里; 在虚拟环境中安装所有Spyder依赖项,如PyQt4,例如这里; 这两项建议都很繁琐,看起来不像是明智的发展选择。 是否有一个解决方案,将允许运行Spyder所需的Pyth

  • 虚拟事件主要在以下两个层面支持产品分析: 将细粒度的事件汇聚成一个事件,实现更高层面的事件汇总。例如可以将某一个页面上的所有的点击设置成一个事件,用来统计某一个页面总的访问量。 将粗粒度的事件拆分成不同事件,实现更细粒度的事件细分。例如可以将点击按钮按照不同页面拆分,用来统计不同页面访问量差异 1.1. 主要功能 虚拟事件的编辑需要用户有管理员或者后台配置的权限,进入路径为:设置>后台配置>虚拟事

  • 自从我醒来后,我一直在努力让它工作,但我根本不知道是什么导致了这个异常。 这是输出,第167行是“dictionary.add(scan.nextLine)”: C:\用户\Aaronbobaron\文档\NetBeansProjects\W 鳄鱼 斑马 袋鼠 冰 雪 山猫 摩天大楼 java线程“AWT-EventQueue-1”中出现异常。util。NoSuchElementException