107 您所在的位置:网站首页 临时文件名称 107

107

2024-07-12 08:51| 来源: 网络整理| 查看: 265

临时数据

文件可以用QFile打开并可以读写数据,另外在进行科学计算时,计算过程中产生的中间临时数据可以写到临时文件或缓存中,程序退出时自动删除临时文件和缓存中的数据

临时文件QTemporaryFile

QTemporaryFile类是一个对临时文件进行操作的I/O设备。

在进行大型科学运算时,通常会产生大量的中间结果数据

例如进行有限元计算时,一个规模巨大的刚度矩阵、质量矩阵和迭代过程中的中间结果会达到几十 GB 或上百 GB甚至更多,如果把这些数据放到内存中通常是放不下的。 需要把这些数据放到临时文件中,并保证临时文件不会覆盖现有的文件,计算过程中读取临时文件中的数据进行运算,计算结束后则自动删除临时文件。

QTemporaryFile类用于创建临时文件它继承自QFile,当用Open()方法打开设备时创建临时文件,并保证临时文件名是唯一的,不会和本机上的文件同名。

用QTemporaryFile创建临时文件对象的方法如下其中templateName是文件名称模板或者不用模板而用指定文件名,parent 是继承自QObject类的实例对象。

模板的文件名中包含6个或6个以上的大写"X"扩展名可以自已指定,例如QTemporaryFile"XXXXXXXXsdb")QTemporaryFile(“abXXXXXXXXcdsdb”)。

如果没有使用模板而使用具体文件名,则临时文件名是在文件名基础上添加新的扩展名,如果指定了父对象则用应用程序的名称(用app.setApplicationName(str)设置)再加上新的扩展名作为临时文件名。如果没有使用模板或指定文件名,则存放临时文件的路径是系统临时路径,可以通过QDir.tempPath()方法获取系统临时路径;如果使用模板或指定文件名,则存放到当前路径下,当前路径可以用QDir.currentPath()方法查询。 from PySide6.QtCore import QTemporaryFile QTemporaryFile(self)-> None QTemporaryFile(parent: PySide6.QtCore.QObject)-> None QTemporaryFile(templateName: str)-> None QTemporaryFile(templateName: str,parent: PySide6.QtCore.QObject)-> None 临时文件QTemporaryFile说明

QTemporaryFile用于安全地创建唯一的临时文件。文件本身是通过调用open()创建的。临时文件的名称保证是唯一的(即,保证不会覆盖现有文件),并且该文件将在QTemporaryFile对象销毁后被删除。对于将数据存储在临时文件中的应用程序来说,这是一项避免数据损坏的重要技术。文件名要么是自动生成的,要么是基于模板创建的,模板会传递给QTemporaryFile的构造函数。

例子:

# Within a function/method... file = QTemporaryFile() if file.open(): # file.fileName()returns the unique file name # The QTemporaryFile destructor removes the temporary file # as it goes out of scope.

在调用close()之后重新打开QTemporaryFile是安全的。只要QTemporaryFile对象本身没有被销毁,唯一的临时文件就会存在,并由QTemporary file在内部保持打开。

可以通过调用fileName()找到临时文件的文件名。请注意,这仅在首次打开文件后定义;函数在此之前返回一个空字符串。

临时文件将具有名称的某些静态部分和计算为唯一的部分。默认文件名将由applicationName()确定(否则为qt_temp),并将被放置到tempPath()返回的临时路径中。如果指定自己的文件名,则默认情况下,相对文件路径不会放置在临时目录中,而是相对于当前工作目录。如果要调用rename()函数,指定正确的目录是很重要的,因为QTemporaryFile只能重命名与创建临时文件相同的卷/文件系统中的文件。

指定的文件名可以包含以下模板XXXXXX(六个大写"X"字符),该模板将被文件名的自动生成部分取代。请注意,该模板区分大小写。如果文件名中没有模板,QTemporaryFile会将生成的零件附加到给定的文件名中。

在Linux上,QTemporaryFile将尝试创建未命名的临时文件。如果成功,open()将返回true,但exists()将为false。如果您调用fileName()或任何调用它的函数,QTemporaryFile将为文件命名,因此大多数应用程序不会看到任何区别。

临时文件QTemporaryFile方法

QTemporaryFile 的常用方法如表所示。

创建临时文件对象后,用open()方法打开文件,这时生成临时文件,临时文件名可以用fileName()方法获取,临时文件的打开方式是读写模式(QIODeviceBase,ReadWrite)。打开临时文件后,可以按照前面介绍的写人和读取方法来读写数据。用setAutoRemove(bool)方法设置临时文件对象销毁后临时文件是否自动删除,默认为 True。 QTemporaryFile的方法及参数类型返回值的类型说甲 明open()bool创建并打开临时文件QTemporaryFile将始终以QIODevice::ReadWrite模式打开,这允许轻松访问文件中的数据。成功后,此函数将返回true,并将fileName()设置为所使用的唯一文件名。fileName()str获取临时文件名和路径setAutoRemove(b:bool)None设置是否自动删除临时文件如果b为true,则将QTemporaryFile设置为自动删除模式。默认情况下,"自动删除"处于启用状态。如果将此属性设置为false,请确保应用程序在不再需要该文件时提供删除该文件的方法,包括将责任传递给另一个进程。始终使用fileName()函数获取名称,并且永远不要尝试猜测QTemporaryFile生成的名称。在某些系统上,如果在关闭文件之前未调用fileName(),则无论此属性的状态如何,都可能删除临时文件。不应依赖此行为,因此应用程序代码应调用fileName()或启用自动删除功能。autoRemove()bool获取是否自动删除临时文件如果QTemporaryFile处于自动删除模式,则返回true。自动删除模式将在销毁时自动从磁盘中删除文件名。这使得在堆栈上创建QTemporaryFile对象变得非常容易,用数据填充它,从中读取,最后在函数返回时,它会自动清理。默认情况下,"自动删除"处于启用状态。setFileTemplate(name:str)None设置临时文件的模板将文件名的静态部分设置为name。如果文件模板包含XXXXXX,该XXXXXX将自动替换为文件名的唯一部分,否则将根据指定的静态部分自动确定文件名。如果名称包含相对文件路径,则该路径将相对于当前工作目录。如果您想使用系统的临时目录,可以使用tempPath()来构造名称。如果要调用rename()函数,指定正确的目录是很重要的,因为QTemporaryFile只能重命名与创建临时文件相同的卷/文件系统中的文件。fileTemplate()str返回设置的文件模板。默认文件模板将被称为qcoreappname.XXXXXXX,并被放置在tempPath()中。createNativeFile(file:PySide6.QtCore.QFile)PySide6.QtCore.QTemporaryFile如果文件还不是本机文件,则在tempPath()中创建一个QTemporaryFile,将文件的内容复制到其中,并返回指向临时文件的指针。如果文件已经是本机文件,则不执行任何操作并返回0。f = QFile(“:/resources/file.txt”)QTemporaryFile.createNativeFile(f)# Returns a pointer to a temporary filef = QFile(“/users/qt/file.txt”)QTemporaryFile.createNativeFile(f)# Returns 0createNativeFile(fileName:str)PySide6.QtCore.QTemporaryFile这是一个重载函数。处理给定的fileName,而不是现有的QFile对象。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有