Python玩转文件操作,谁用谁知道!
2022-11-19 15:56:35
文件操作:Python 中的文件处理指南
Python 文件操作功能强大,能够满足各种需求,是 Python 开发中必不可少的一部分。在这篇全面的指南中,我们将深入探讨 Python 文件操作的方方面面,从获取文件属性到创建和解压档案。
一、获取文件属性
了解文件属性可以帮助我们更有效地管理文件。使用 os.stat()
函数,我们可以获取以下信息:
- 文件大小:
file_stats.st_size
- 创建时间:
file_stats.st_ctime
- 修改时间:
file_stats.st_mtime
- 访问时间:
file_stats.st_atime
import os
file_path = 'test.txt'
file_stats = os.stat(file_path)
print('File size:', file_stats.st_size)
print('Creation time:', file_stats.st_ctime)
print('Modification time:', file_stats.st_mtime)
print('Access time:', file_stats.st_atime)
二、创建目录
创建目录允许我们组织文件,使它们易于查找和管理。使用 os.mkdir()
函数,我们可以轻松地创建新的目录:
import os
directory_path = 'new_directory'
os.mkdir(directory_path)
三、文件名模式匹配
文件名模式匹配可以帮助我们查找符合特定模式的所有文件。使用 glob.glob()
函数,我们可以轻松进行模式匹配:
import glob
file_pattern = '*.txt'
files = glob.glob(file_pattern)
for file in files:
print(file)
四、遍历目录树
遍历目录树对于处理包含多个子目录和文件的复杂目录结构非常有用。使用 os.walk()
函数,我们可以遍历目录树,并获取目录下的所有文件和目录:
import os
directory_path = 'directory'
for root, directories, files in os.walk(directory_path):
print('Root:', root)
print('Directories:', directories)
print('Files:', files)
五、创建临时文件和目录
临时文件和目录可用于存储临时数据,而无需创建持久文件。使用 tempfile.mkstemp()
函数,我们可以创建临时文件,使用 tempfile.mkdtemp()
函数,我们可以创建临时目录:
import tempfile
temp_file = tempfile.mkstemp()
temp_directory = tempfile.mkdtemp()
print('Temporary file:', temp_file[1])
print('Temporary directory:', temp_directory)
六、删除文件和目录
删除文件和目录可以帮助我们清理不需要的文件或目录。使用 os.remove()
函数,我们可以删除文件,使用 os.rmdir()
函数,我们可以删除目录:
import os
file_path = 'test.txt'
directory_path = 'directory'
os.remove(file_path)
os.rmdir(directory_path)
七、复制、移动和重命名文件和目录
复制、移动和重命名文件和目录操作在组织文件和保持目录整洁方面非常有用。使用 shutil.copy()
函数,我们可以复制文件,使用 shutil.move()
函数,我们可以移动文件或目录,使用 os.rename()
函数,我们可以重命名文件或目录:
import shutil
import os
file_path = 'test.txt'
new_file_path = 'new_test.txt'
directory_path = 'directory'
new_directory_path = 'new_directory'
shutil.copy(file_path, new_file_path)
shutil.move(file_path, new_file_path)
os.rename(directory_path, new_directory_path)
八、创建和解压 ZIP 和 TAR 档案
ZIP 和 TAR 档案是压缩和存储多个文件的有用方式。使用 zipfile
模块,我们可以创建和解压 ZIP 档案,使用 tarfile
模块,我们可以创建和解压 TAR 档案:
import zipfile
import tarfile
zip_file = 'archive.zip'
tar_file = 'archive.tar.gz'
with zipfile.ZipFile(zip_file, 'w') as zip:
zip.write('file.txt')
with tarfile.open(tar_file, 'w:gz') as tar:
tar.add('file.txt')
with zipfile.ZipFile(zip_file, 'r') as zip:
zip.extractall()
with tarfile.open(tar_file, 'r:gz') as tar:
tar.extractall()
九、使用 fileinput 模块打开多个文件
fileinput
模块提供了同时打开多个文件并逐行读取文件内容的便利功能。这对于处理大型文件或需要一次处理多个文件的情况非常有用:
import fileinput
files = ['file1.txt', 'file2.txt', 'file3.txt']
for line in fileinput.input(files):
print(line)
结论
Python 文件操作功能强大且用途广泛,在各种应用中发挥着至关重要的作用。从获取文件属性到创建和解压档案,Python 为我们提供了满足不同需求的全面工具包。通过掌握这些技术,我们可以有效地管理文件,简化我们的开发任务。
常见问题解答
-
如何将文件内容写入文件?
- 使用
open()
函数以写模式打开文件,然后使用write()
方法写入内容。
- 使用
-
如何读取文件中的每一行?
- 使用
open()
函数以读模式打开文件,然后使用readlines()
方法读取每一行。
- 使用
-
如何将一个文件的内容追加到另一个文件?
- 使用
open()
函数以追加模式打开第二个文件,然后使用write()
方法写入内容。
- 使用
-
如何将文件中的内容全部删除?
- 使用
open()
函数以写模式打开文件,然后使用truncate()
方法。
- 使用
-
如何将两个文件合并为一个文件?
- 使用
open()
函数以读模式打开两个文件,然后使用shutil.copyfileobj()
函数将一个文件的内容复制到另一个文件。
- 使用