Python中的os模块和文件操作函数
Python中的os模块是一个与操作系统交互的模块,能够提供有关文件系统的访问和控制功能。在Python中,os模块中封装了大量的函数,涵盖了对文件、目录和进程等系统资源的处理,在文件操作方面,os模块也有很多强大的方法,可以帮助我们轻松地完成文件的读取、写入、移动、删除、重命名等操作,本篇文章就来介绍一下Python中os模块和文件操作函数。
1. os模块的基础方法
os模块提供了一些基础的方法,可以供我们处理常见的文件和目录操作。
(1)os.getcwd():获取当前工作目录。
(2)os.listdir(path):列出指定目录下所有的文件和子目录。
(3)os.mkdir(path):创建一个新目录。
(4)os.makedirs(path):递归创建一个目录。
(5)os.remove(path):删除一个文件。
(6)os.rmdir(path):删除一个空目录。
(7)os.removedirs(path):递归删除一个目录。
(8)os.rename(old, new):重命名一个文件或目录。
(9)os.path.exists(path):检测一个文件或目录是否存在。
2. 文件读写操作
(1)打开文件:使用open()函数可以打开一个文件,可以指定文件名、模式(r,w,a)和字符编码(默认为utf-8)。
f = open('filename', 'r', encoding='utf-8')
打开模式有:
r:只读模式(默认),如果文件不存在会抛出异常;
w:写入模式,如果文件不存在则自动创建,存在则覆盖原文件;
a:追加模式,如果文件不存在则自动创建,存在则在文件末尾追加内容;
b:二进制模式,与上述模式结合使用,如rb、wb、ab。
(2)读取文件内容:使用read()方法读取文件的全部内容,使用readline()方法读取一行内容,使用readlines()方法读取每一行内容存入列表。
f = open('filename', 'r')
content = f.read() # 读取全部内容
line = f.readline() # 读取一行内容
lines = f.readlines() # 读取多行内容
(3)写入文件内容:使用write()方法向文件中写入内容,使用writelines()方法向文件中写入多行内容。
f = open('filename', 'w')
f.write('Hello, World!
') # 写入一行内容
f.writelines(['Python
', 'Java
', 'PHP
']) # 写入多行内容
(4)关闭文件:使用close()方法关闭文件,在读写文件完成后建议关闭文件。
f = open('filename', 'r')
content = f.read()
f.close()
3. 文件操作的高级方法
(1)os.path.join(path1, path2):拼接文件路径,避免因不同操作系统路径格式导致的问题。
path = os.path.join('dir1', 'dir2', 'filename')
(2)os.path.splitext(path):分离文件扩展名和主体部分。
filename, ext = os.path.splitext('filename.txt') # filename='filename', ext='.txt'
(3)os.path.split(path):分离文件路径和文件名。
path, filename = os.path.split('/dir1/dir2/filename') # path='/dir1/dir2', filename='filename'
(4)os.path.basename(path):返回路径的文件名部分。
filename = os.path.basename('/dir1/dir2/filename.txt') # filename='filename.txt'
(5)os.path.dirname(path):返回文件路径的目录部分。
path = os.path.dirname('/dir1/dir2/filename.txt') # path='/dir1/dir2'
(6)os.path.getsize(path):获取文件大小。
size = os.path.getsize('filename') # size=10240
(7)os.path.abspath(path):获取文件的绝对路径。
path = os.path.abspath('filename') # path='/dir1/dir2/filename.txt'
(8)shutil模块:提供文件和目录的高级操作功能,例如复制、移动、删除等。
import shutil
shutil.copy('source', 'target') # 复制文件或目录
shutil.move('source', 'target') # 移动文件或目录
shutil.rmtree('path') # 删除目录及其子目录
总之,Python中的os模块提供了各种基础和高级的文件操作函数,使我们可以方便地处理文件和目录,可以让我们更加高效地操作计算机。在进行文件操作时,一定要注意保持文件的安全,避免对未经授权的文件做出修改和删除操作,以免造成不必要的损失。
