Python中的tempfile模块–创建临时文件和目录
时间:2020-01-09 10:44:20 来源:igfitidea点击:
在本教程中,我们将介绍如何在Python中创建临时文件和目录。我们可能需要一个临时文件来在应用程序运行时临时存储一些数据,可以在完成任务后安全地自动删除这些数据。
Python中的tempfile模块
在Python中,tempfile模块具有创建临时文件和目录的功能。它适用于所有受支持的平台。
tempfile模块中包含以下用于创建临时文件的功能。
- tempfile.TemporaryFile()–此函数返回一个可用作临时存储区的对象。默认情况下,文件以w + b模式打开,因此可以在不关闭文件的情况下读写创建的文件。使用二进制模式,以便它在所有平台上均具有一致的行为。临时文件在关闭后即被销毁。这是一个创建临时文件并向其中写入内容的Python示例。
def create_temp_file(): fp = tempfile.TemporaryFile() fp.write(b'Writing content in temp file') print('Temp file full name:', fp.name) fp.seek(0) # read temp file s = fp.read() print(s) fp.close()
输出:
Temp file full name: C:\Users\theitroad\AppData\Local\Temp\tmpigwrmggh b'Writing content in temp file'
tempfile.NamedTemporaryFile –此函数的操作与TemporaryFile()完全相同,只是保证文件在文件系统中具有可见的名称。
tempfile.mkstemp –以最安全的方式创建一个临时文件。使用此功能,用户有责任在完成后删除临时文件。 mkstemp()返回一个元组,其中包含打开文件的操作系统级句柄和该文件的绝对路径名(按此顺序)。
def create_temp_file(): fp = tempfile.mkstemp() print('Handle:', fp[0]) print('File Path:'. fp[1]) try: with os.fdopen(fp[0], 'w+') as tmp: tmp.write('Writing content in temp file') tmp.seek(0) # read temp file s = tmp.read() print(s) finally: os.remove(fp[1])
输出:
C:\Users\Anshu\AppData\Local\Temp\tmp8yajie7g Writing content in temp file
tempfile模块中用于创建临时目录的功能。
- tempfile.TemporaryDirectory –此函数安全地创建一个临时目录。如果未传递任何参数,则在默认位置创建目录,我们也可以使用dir参数传递目录位置。
在上下文完成或者临时目录对象被破坏后,新创建的临时目录及其所有内容将从文件系统中删除。可以通过调用cleanup()方法显式清除目录。
def create_temp_dir(): fp = tempfile.TemporaryDirectory() print('created temporary directory', fp.name) fp.cleanup() create_temp_dir()
输出:
created temporary directory C:\Users\Anshu\AppData\Local\Temp\tmp44habknw
使用dir参数传递目录时
def create_temp_dir(): fp = tempfile.TemporaryDirectory(dir='F:/theitroad/Python') print('created temporary directory', fp.name) create_temp_dir()
输出:
created temporary directory F:/theitroad/Python\tmpmkt8363n
- tempfile.mkdtemp –以最安全的方式创建一个临时目录。使用此功能,用户有责任在完成后删除临时目录及其内容。 mkdtemp()返回新目录的绝对路径名。
def create_temp_dir(): fpath = tempfile.mkdtemp(suffix='py', dir='F:/theitroad/Python') print('created temporary directory', fpath) # removing temp dir os.rmdir(fpath) create_temp_dir()
输出:
created temporary directory F:/theitroad/Python\tmpswqxki5spy